我在与jenkins结合使用phpunit,并且我想通过在XML文件中设置配置来跳过某些测试 phpunit.xml
我知道我可以在命令行上使用:
phpunit --filter testStuffThatBrokeAndIOnlyWantToRunThatOneSingleTest
由于<filters>
标记仅用于代码覆盖,我如何将其转换为XML文件?
我想除了运行所有测试 testStuffThatAlwaysBreaks
我在与jenkins结合使用phpunit,并且我想通过在XML文件中设置配置来跳过某些测试 phpunit.xml
我知道我可以在命令行上使用:
phpunit --filter testStuffThatBrokeAndIOnlyWantToRunThatOneSingleTest
由于<filters>
标记仅用于代码覆盖,我如何将其转换为XML文件?
我想除了运行所有测试 testStuffThatAlwaysBreaks
<exclude>
-会做对你的工作
Answers:
跳过已损坏或您以后需要继续进行的测试的最快,最简单的方法是将以下内容添加到单个单元测试的顶部:
$this->markTestSkipped('must be revisited.');
static::markTestSkipped('');
代替$this->
。它将在较新的PHP版本中生成警告。签名: public static function markTestSkipped($message = '')
$this->markTestSkipped()
如果您可以忽略整个文件,那么
<?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>
<exclude>
和使用<exclude>
....... 63 / 893 ( 7%)
@group
按其性质使用注释和拆分测试
有时,根据定义为php代码的自定义条件从特定文件中跳过所有测试很有用。您可以使用makeTestSkipped也可以正常运行的setUp函数轻松地做到这一点。
protected function setUp()
{
if (your_custom_condition) {
$this->markTestSkipped('all tests in this file are invactive for this server configuration!');
}
}
your_custom_condition可以通过某些静态类方法/属性,在phpunit bootstrap文件中定义的常量甚至是全局变量来传递。
Config
课程?我在哪里放置?