ahilles107/doctrine-data-fixtures-extension

Behat的Doctrine数据固定扩展

6.0.3 2020-12-04 20:07 UTC

README

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

安装

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

配置

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

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

生命周期设置为"功能"(或未指定)时,数据固定将在功能文件之间重新加载。否则,当生命周期设置为"场景"时,数据固定将在场景之间重新加载(即,以增加运行时间为代价增加了测试隔离)。

当设置固定数据时,扩展将加载指定的固定数据类。这必须包含一个完全限定的类名列表。类不得有任何构造函数参数(或者至少是可选的)。如果实现了接口Symfony\Component\DependencyInjection\ContainerAwareInterface,容器将设置到固定数据加载器。

当设置目录时,扩展将从相应的目录加载固定数据。类不得有任何构造函数参数(或者至少是可选的)。如果实现了接口Symfony\Component\DependencyInjection\ContainerAwareInterface,容器将设置到固定数据加载器。

此扩展还将加载所有标记为doctrine.fixture.orm的服务和作为固定数据声明的类。

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

备份系统

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

此功能仅适用于SQLite、MySQL和PostgreSQL。

  • 对于MySQL,必须提供mysqlmysqldump
  • 对于PostgreSQL,必须提供pg_restorepg_dump

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

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

源代码

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

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

版权

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

有关详细信息,请参阅LICENSE

贡献者