单元测试 – 如何从xml配置中的PHPUnit测试套件中排除文件?

前端之家收集整理的这篇文章主要介绍了单元测试 – 如何从xml配置中的PHPUnit测试套件中排除文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下,非常简单的XML配置为PHPUnit:
<PHPunit bootstrap="/_tests/TestAutoload.PHP">
    <testsuites>
        <testsuite name="Unit Tests">
            <directory suffix=".PHP">_tests</directory>
        </testsuite>
    </testsuites>
</PHPunit>

如何从测试套件中排除此目录中的某些文件?我试过< exclude>和< blacklist>,但是在这种情况下似乎不起作用。也找不到任何其他文件phpunit.de,没有提到任何关于它。否则,此配置工作完美。

有几种方法不能运行特定的测试 – 将其放入黑名单中,因此它永远不会运行可能不是这样 – 因为更改它意味着编辑黑名单,并且您经常会弹出并退出版本控制。

还有其他几种方法可能更合适:

如果测试尚未准备好运行:

$this->markTestIncomplete('This test has not been implemented yet.');

如果有一个外部的理由不应该运行,请跳过它:

if (!extension_loaded('MysqLi')) {
    $this->markTestSkipped('The MysqLi extension is not available.');
}

您也可以将其放在setUp()函数中,因此它将跳过测试类中的所有测试。

您可以根据以前的测试取得测试:

public function testEmpty()
{
    $stack = array();
    $this->assertTrue(empty($stack));
    return $stack;   // also sends this variable to any following tests - if this worked
}
/**
 * only runs if testEmpty() passed
 *
 * @depends testEmpty
 */
public function testPush(array $stack)
{
}

@group -name-注解是专门停止或运行一组测试的最佳方式之一

/**
 * @group database
 * @group remoteTasks
 */
public function testSomething()
{
}

testSomething()现在分成两组,如果在命令行(或config.xml)中添加了–exclude-group参数。它不会运行。同样,您只能运行属于特定组的测试,例如以功能命名或错误报告。

猜你在找的XML相关文章