我有一个 PHPUnit 测试,它使用@dataProvider
。数据提供者检查文件系统中的某些文件。
但是,我在不同的环境中使用此测试,这意味着文件可能不存在。这意味着 dataProvider 没有找到任何内容,并且测试未执行。
这会导致测试运行以失败告终。
问题:是否有一种方法可以将 PHPUnit 配置为忽略提供程序不产生任何结果的测试?
虽然我不知道任何 phpunit 选项(这并不意味着不存在),但您可以使用如下所示的选项:
public function providerNewFileProvider()
{
//get files from the "real" provider
$files = $this->providerOldFileProvider();
//no files? then, make a fake entry to "skip" the test
if (empty($files)) {
$files[] = array(false,false);
}
return $files;
}
/**
* @dataProvider providerNewFileProvider
*/
public function testMyFilesTest($firstArg,$secondArg)
{
if (false === $firstArg) {
//no files existing is okay, so just end immediately
$this->markTestSkipped('No files to test');
}
//...normal operation code goes here
}
当然,这是一种解决方法,但它应该可以阻止错误的出现。显然,无论你做什么都取决于是否允许第一个(或任意任意)参数false
,但您可以进行调整以适应您的测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)