首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用phpunit运行单一测试方法?

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

Stack Overflow用户
提问于 2014-09-29 15:56:30
回答 10查看 241.7K关注 0票数 412

我正在努力用phpunitescalation/EscalationGroupTest.php文件中运行一个名为testSaveAndDrop的测试方法。我尝试了以下组合:

代码语言:javascript
复制
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中的所有测试方法。如何只选择一种方法呢?

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

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2014-09-29 16:28:54

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

代码语言:javascript
复制
phpunit --filter testSaveAndDrop EscalationGroupTest escalation/EscalationGroupTest.php

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

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

代码语言:javascript
复制
phpunit --filter methodName path/to/file.php
票数 564
EN

Stack Overflow用户

发布于 2015-02-24 19:57:54

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

代码语言:javascript
复制
/**
 * @group failing
 * Tests the api edit form
 */
public function testEditAction()

然后用以下命令运行

代码语言:javascript
复制
phpunit --group failing

不需要在命令行中指定完整路径,但您必须记住在提交之前删除它,以免使代码变得混乱。

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

代码语言:javascript
复制
/**
  * @group failing
  * @group bug2204 
  */
public function testSomethingElse()
{
}
票数 247
EN

Stack Overflow用户

发布于 2016-02-13 17:22:33

下面是更通用的答案:

如果您确定方法名称是唯一的,则只能按方法名称进行过滤(这适用于我)

代码语言:javascript
复制
phpunit --filter {TestMethodName}

但是,指定文件路径/引用也更安全

代码语言:javascript
复制
phpunit --filter {TestMethodName} {FilePath}

示例:

代码语言:javascript
复制
phpunit --filter testSaveAndDrop reference/to/escalation/EscalationGroupTest.php
票数 127
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26095051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档