我正在尝试过滤 PHPUnit 测试套件。当我尝试使用 来按测试名称进行过滤时--filter
,将执行与指定字符串完全匹配的测试,但任何以该字符串开头的测试也将执行。
例如。如果我有两个测试,testExample 和 testExampleTwo,下面会运行这两个测试:
phpunit --filter testExample tests/Example.php
Run Code Online (Sandbox Code Playgroud)
我怎样才能让 phpunit 坚持我给它的确切字符串?我试过了,/testExample$/
但没有运行任何测试。我正在使用 PHPUnit 3.7。
完全限定的测试名称取决于测试是否具有数据提供者。
当没有数据提供者时,测试的名称只是Example::testExample
,它将使用/testExample$/
.
phpunit --filter '/testExample$/' tests/Example.php
/**
* No data provider.
*/
public function testExample() {
}
Run Code Online (Sandbox Code Playgroud)
但是,对于数据提供程序,测试变为Example::testExample with data set [dataset]
,与模式 不匹配/testExample$/
。
我必须使用以下模式才能使其按预期工作,它匹配字符串的结尾或空格字符。
phpunit --filter '/testExample\b/' tests/Example.php
/**
* @dataProvider exampleData
*/
public function testExample($data) {
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
525 次 |
最近记录: |