我的一个phpunit测试使用数据集(由数据提供者提供),需要很长时间才能生成。当我从执行中排除此测试时,仍然会执行其dataprovider方法。
如何跳过数据提供者的执行?
答案 0 :(得分:0)
如果您正在使用$this->markTestSkipped()
从测试内部跳过慢速测试,则无法阻止执行dataProvider。
这是因为PHPUnit必须在执行之前获取将传递给测试的数据。
可能的解决方案:
从命令行(-d key[=value]
选项)设置一个环境变量,该变量将由dataProvider和慢速测试读取。 dataProvider将返回一个虚拟数组,测试将自己标记为跳过。
使用@group
注释将测试标记为慢速并使用--exclude-group
命令行选项,以便不执行慢速组测试
重构测试,因此没有使用数据提供者,假设没有将测试作为不同的案例给您带来不便。