我正在努力用phpunit在escalation/EscalationGroupTest.php文件中运行一个名为testSaveAndDrop的测试方法。我尝试了以下组合:
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=escalation/EscalationGroupTest.php::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=EscalationGroupTest.php::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=EscalationGroupTest::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=testSaveAndDrop在每种情况下,都会执行文件escalation/EscalationGroupTest.php中的所有测试方法。如何只选择一种方法呢?
类的名称是EscalationGroupTest,phpunit的版本是3.2.8。
发布于 2014-09-29 16:28:54
以下命令对单个方法运行测试:
phpunit --filter testSaveAndDrop EscalationGroupTest escalation/EscalationGroupTest.php
phpunit --filter methodName ClassName path/to/file.php对于较新版本的phpunit,它只是:
phpunit --filter methodName path/to/file.php发布于 2015-02-24 19:57:54
我更喜欢在注释中将测试标记为
/**
* @group failing
* Tests the api edit form
*/
public function testEditAction()然后用以下命令运行
phpunit --group failing不需要在命令行中指定完整路径,但您必须记住在提交之前删除它,以免使代码变得混乱。
您还可以为单个测试指定多个组
/**
* @group failing
* @group bug2204
*/
public function testSomethingElse()
{
}发布于 2016-02-13 17:22:33
下面是更通用的答案:
如果您确定方法名称是唯一的,则只能按方法名称进行过滤(这适用于我)
phpunit --filter {TestMethodName}但是,指定文件路径/引用也更安全
phpunit --filter {TestMethodName} {FilePath}示例:
phpunit --filter testSaveAndDrop reference/to/escalation/EscalationGroupTest.phphttps://stackoverflow.com/questions/26095051
复制相似问题