如何跳过执行phpunit数据提供程序方法

时间:2015-04-20 14:35:26

标签: phpunit dataprovider

我的一个phpunit测试使用数据集(由数据提供者提供),需要很长时间才能生成。当我从执行中排除此测试时,仍然会执行其dataprovider方法。

如何跳过数据提供者的执行?

1 个答案:

答案 0 :(得分:0)

如果您正在使用$this->markTestSkipped()从测试内部跳过慢速测试,则无法阻止执行dataProvider。

这是因为PHPUnit必须在执行之前获取将传递给测试的数据。

可能的解决方案:

  1. 从命令行(-d key[=value]选项)设置一个环境变量,该变量将由dataProvider和慢速测试读取。 dataProvider将返回一个虚拟数组,测试将自己标记为跳过。

  2. 使用@group注释将测试标记为慢速并使用--exclude-group命令行选项,以便不执行慢速组测试

  3. 重构测试,因此没有使用数据提供者,假设没有将测试作为不同的案例给您带来不便。