如何跳过PHPunit中的测试?

时间:2012-04-20 01:59:34

标签: php phpunit

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

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

phpunit --filter testStuffThatBrokeAndIOnlyWantToRunThatOneSingleTest

如何将其转换为XML文件,因为<filters>标记仅用于代码覆盖?

我想在testStuffThatAlwaysBreaks

之外运行所有测试

3 个答案:

答案 0 :(得分:123)

跳过测试的最快最简单的方法是破坏或者您需要继续工作,只需将以下内容添加到单个单元测试的顶部:

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

答案 1 :(得分:25)

如果你可以处理忽略整个文件,那么

<?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>

答案 2 :(得分:13)

有时根据定义为php代码的自定义条件跳过特定文件中的所有测试是有用的。您可以使用setUp函数轻松完成此操作,其中makeTestSkipped也可以使用。

protected function setUp()
{
    if (Config::getInstance()->myConfigCondition == false) {
        $this->markTestSkipped('all tests in this file are invactive for this server configuration!');
    }
}

顺便说一句phpunit 5.2 stable official documentation表明你应该使用markTestSkipped作为实例方法,而不是静态方法。没有检查定义是否在此过程中发生了变化。