如何使用phpunit运行单个测试方法?

2022-08-30 05:53:29

我正在努力运行文件中命名的单个测试方法。我尝试了以下组合:testSaveAndDropescalation/EscalationGroupTest.phpphpunit

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

该类的名称是 3.2.8,版本是 3.2.8。EscalationGroupTestphpunit


答案 1

以下命令在单个方法上运行测试:

phpunit --filter testSaveAndDrop EscalationGroupTest escalation/EscalationGroupTest.php

phpunit --filter methodName ClassName path/to/file.php

对于较新版本的phpunit,它只是:

phpunit --filter methodName path/to/file.php

答案 2

我更喜欢在注释中将测试标记为

/**
 * @group failing
 * Tests the api edit form
 */
public function testEditAction()

然后运行它

phpunit --group failing

无需在命令行中指定完整路径,但您必须记住在提交之前将其删除,而不是使代码混乱。

您还可以为单个测试指定多个组

/**
  * @group failing
  * @group bug2204 
  */
public function testSomethingElse()
{
}

推荐