takeit/doctrine-data-fixtures-extension

Behat 的 Doctrine 数据固定扩展

v5.0.1 2018-05-23 09:58 UTC

README

该扩展通过在场景和功能之间重新加载 ORM 数据固定,增加了功能测试的隔离性。

安装

composer require "behat-extension/doctrine-data-fixtures-extension"

配置

在您的 behat.yml 中激活扩展并定义任何要加载的固定数据

# behat.yml
default:
  # ...
  extensions:
    BehatExtension\DoctrineDataFixturesExtension\Extension:
      lifetime:    'feature'
      autoload:    true
      directories: ~
      fixtures:    ~

lifetime 设置为 "feature"(或未指定)时,数据固定将在功能文件之间重新加载。另请参阅,当 lifetime 设置为 "scenario" 时,数据固定将在场景之间重新加载(即,以增加运行时间为代价增加了测试隔离性)。

autoload 为 true 时,扩展将加载已注册包的数据固定。请注意,只有存储在包的 /DataFixtures/ORM 文件夹中的固定数据将被加载。如果您想加载带有 doctrine.fixture.orm 标签的固定数据,您必须在测试 AppKernel 类中启用包 BehatExtension\DoctrineDataFixturesExtension\Bundle\BehatDoctrineDataFixturesExtensionBundle

fixtures 设置时,DoctrineDataFixtures 扩展将加载指定的固定类。

directories 设置时,DoctrineDataFixtures 扩展将加载从相应目录中 glob 的数据固定。

# behat.yml
default:
  # ...
  extensions:
    BehatExtension\DoctrineDataFixturesExtension\Extension:
      lifetime: 'feature'
      autoload: true
      directories:
        - '/project/src/AcmeAnalytics/Tests/DataFixtures/ORM'
      fixtures:
        - 'Acme\StoreBundle\DataFixture\ORM\Categories'
        - 'Acme\StoreBundle\DataFixture\ORM\Apps'
        - 'Acme\VendorBundle\DataFixture\ORM\Vendors'

备份系统

为了加快测试速度,有一个备份系统可用。整个数据库将被设置在缓存中,并在需要时重新加载。您应该定期清除缓存,因为它不会检测数据固定内容的变化,因为哈希是基于数据固定类名的集合。

此功能仅适用于以下 SGDB:SQLite、MySQL、PostgreSQL。

默认启用。要禁用,只需在扩展配置中设置 use_backup: false 即可。

# behat.yml
default:
  # ...
  extensions:
    BehatExtension\DoctrineDataFixturesExtension\Extension:
      lifetime: 'feature'
      autoload: true
      use_backup: false

源代码

Github: https://github.com/BehatExtension/DoctrineDataFixturesExtension

https://github.com/vipsoft/DoctrineDataFixturesExtension 分支

版权

  • 版权(c)2012 Anthon Pang。
  • 版权(c)2016-2018 Florent Morselli。

有关详细信息,请参阅 LICENSE

贡献者