【问题标题】:How to avoid execution of unused dataProvider methods?如何避免执行未使用的 dataProvider 方法?
【发布时间】:2015-09-14 10:55:04
【问题描述】:

如果我只需要运行类中的一项测试,例如

phpunit --filter someTest tests/ExampleTest.php

PHPUnit 仍然为该类中的所有测试初始化​​ dataProviders,就我而言,这需要大量时间。 有没有办法只为执行的方法初始化 dataProvider?

【问题讨论】:

  • 你能不能简单地将测试分成不同的文件,这样你就不需要初始化所有的数据提供者了?
  • 不是变种。我只是为一个模块写了一个大的测试文件。在编写测试后我运行它。当有很多测试时,数据初始化确实需要一段时间,而当我添加测试时,我实际上只需要检查这个测试并仅为它初始化 dataProvider。

标签: php unit-testing phpunit


【解决方案1】:

如果您使用--group 而不是--filter,则仅初始化所选组的测试。这也应该适用于数据提供者。

为此,您必须添加 @group 注释(幸运的是,这对每个方法都是可能的,而不仅仅是每个类)。如果您仍然希望能够单独执行所有测试,请将每个测试放在自己的组中:

/**
 * @test
 * @group someTest
 * @dataProvider someData
 */
public function someTest(...)

【讨论】:

    猜你喜欢
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多