如何跳过 PHP 单元中的测试?

我正在与 jenkins 联系使用 phPunit,我想通过在 XML 文件 phpunit.xml中设置配置来跳过某些测试

我知道我可以在命令行上使用:

phpunit --filter testStuffThatBrokeAndIOnlyWantToRunThatOneSingleTest

既然 <filters>标记只是用于代码覆盖,那么如何将其转换为 XML 文件呢?

I would like to run all tests apart from testStuffThatAlwaysBreaks

70104 次浏览

如果你可以处理忽略整个文件,然后

<?xml version="1.0" encoding="UTF-8"?>


<phpunit>


<testsuites>
<testsuite name="foo">
<directory>./tests/</directory>
<exclude>./tests/path/to/excluded/test.php</exclude>
^-------------
</testsuite>
</testsuites>


</phpunit>

要跳过那些已经坏掉或者需要以后继续进行的测试,最快、最简单的方法就是在单个单元测试的顶部添加以下内容:

$this->markTestSkipped('must be revisited.');

有时,基于定义为 php 代码的自定义条件跳过特定文件中的所有测试是有用的。您可以使用 setUp 函数轻松地完成这项工作,在这个函数中 make TestSkipping 也可以工作。

protected function setUp()
{
if (your_custom_condition) {
$this->markTestSkipped('all tests in this file are invactive for this server configuration!');
}
}

可以通过某个静态类方法/属性、 phPunit bootstrap 文件中定义的常量、甚至全局变量传递 your _ custom_ 條