aligent / oro-fixtures
一个OroCommerce扩展包,用于使用Alice fixtures填充开发环境中的测试数据。
Requires
- oro/commerce: 5.0.*
- oro/platform: 5.0.*
Requires (Dev)
- friendsofphp/php-cs-fixer: ~2.18.2 || ~3.1.0
- nelmio/alice: ~3.8.0 || ~3.9.0
- phpmd/phpmd: ^2.12
- phpstan/phpstan: ^1.7
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
- symfony/phpunit-bridge: ~4.4.24 || ~6.1.0
- theofidry/alice-data-fixtures: ~1.4.0 || ~1.5.0
This package is auto-updated.
Last update: 2024-08-30 01:23:39 UTC
README
描述
此扩展包提供了一个抽象的fixture类,可以扩展来加载Alice fixtures。为开发环境提供了一种轻松加载小部分演示/测试数据的方法。然后,这些fixtures可以轻松与为您的扩展包创建的任何Behat测试共享。
此扩展包不打算在生产环境中加载,并且只有在开发模式下才会加载其所需的服务。
安装说明
-
通过Composer安装此模块
composer require --dev aligent/oro-fixtures
-
将以下内容添加到您的
src/AppKernel.php
文件中的registerBundles
函数中if (class_exists('Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle') && class_exists('Fidry\AliceDataFixtures\Bridge\Symfony\FidryAliceDataFixturesBundle')) { $bundles[] = new Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle(); $bundles[] = new Fidry\AliceDataFixtures\Bridge\Symfony\FidryAliceDataFixturesBundle(); }
-
清除缓存
php bin/console cache:clear --env=dev
初始化器
初始化器提供了一种方法,使Alice fixtures能够引用数据库中已经存在的实体。
此扩展包包含以下初始化器
添加和运行fixture
-
确保您的数据库已初始化为OroCommerce的空安装(即不要添加演示数据)
-
快照您的数据库以创建回滚点
-
在您的扩展包中创建演示fixture目录,例如
src/Acme/BaseBundle/Migrations/Data/Demo/ORM
-
创建一个名为
data
的子目录,例如src/Acme/BaseBundle/Migrations/Data/Demo/ORM/data
并添加一个alice fixture,例如:Oro\Bundle\ProductBundle\Entity\ProductName: product_A_1_name: string: 'Product A 1' Oro\Bundle\ProductBundle\Entity\ProductUnitPrecision: unit_precisionA1: unit: '@unit_each' precision: '1' Oro\Bundle\ProductBundle\Entity\Product: product_A_1: type: 'simple' sku: 'PROD_A_1' organization: '@organization' attributeFamily: '@defaultProductFamily' primaryUnitPrecision: '@unit_precisionA1' __calls: - addName: ['@product_A_1_name'] status: 'enabled' inventoryStatus: '@enumInventoryStatuses' Oro\Bundle\PricingBundle\Entity\ProductPrice: price_A_1: product: '@product_A_1' priceList: '@defaultPriceList' currency: 'AUD' quantity: 1 unit: '@unit_each' value: 12 Oro\Bundle\PricingBundle\Entity\PriceListToProduct: priceRelation_A_1: product: '@product_A_1' priceList: '@defaultPriceList'
-
在演示fixtures目录中创建一个新的fixture,它扩展了
AbstractAliceFixture
并实现了getFixtures
。这可以指向一个文件或一个包含yml文件的目录。<?php namespace Acme\BaseBundle\Migrations\Data\Demo\ORM; use Aligent\FixturesBundle\Fixtures\AbstractAliceFixture; class ExampleDemoDataFixture extends AbstractAliceFixture { protected function getFixtures(): string { return __DIR__ . '/data'; } }
-
要执行fixture,请运行
bin/console oro:migration:data:load --env=dev --fixtures-type=demo --bundles=AcmeBaseBundle --bundles=AcmeAnotherBundle
支持
如果您在此扩展包中遇到任何问题,请随时通过版本和复现步骤在GitHub上打开问题。
贡献
任何贡献都将受到高度赞赏。最佳的代码贡献方式是在GitHub上打开pull request。
开发者
Adam Hall adam.hall@aligent.com.au.
许可
版权
(C)2022 Aligent Consulting