我使用命令行运行测试时遇到问题:如果我运行phpunit这样:
phpunit -–no-configuration -–filter testAdd DataTest DataProviderTest.php
它工作正常
但是我们使用正则表达式来精确地指定要测试的方法的名称:
phpunit -–no-configuration -–filter /::testAdd$/ DataTest DataProviderTest.php
第二种方法不幸的是不工作.
源代码是:
<?php class DataTest extends PHPUnit_Framework_TestCase { /** * @dataProvider provider */ public function testAdd($a,$b,$c) { $this->assertEquals($c,$a + $b); } public function provider() { return array( array(0,0),array(0,1,1),array(1,3) ); } } ?>
用于处理具有或不具有数据集的测试的正则表达式是
phpunit --filter "/::<method>( with data set .*)?$/" <class> <file>
例如
phpunit --filter "/::testAdd( with data set .*)?$/" DataTest DataProviderTest.php
由于测试方法在名称中不会有空格,除非它具有数据集,那么您可以将其缩小到
phpunit --filter "/::testAdd( .*)?$/" DataTest DataProviderTest.php