我下面有这个测试类,我想从它只运行一个测试,例如“aboutPage”。有什么想法吗?
这就是我只运行这个文件的方式:
codecept run tests/acceptance/VisitorCest.php
但现在我只想从文件中运行一个测试。
<?php
use \AcceptanceTester;
class VisitorCest
{
public function _before(){}
public function _after(){}
public function aboutPage(AcceptanceTester $I)
{
$I->wantTo('check about page');
}
public function contactPage(AcceptanceTester $I)
{
$I->wantTo('check contact page');
}
}
答案 0 :(得分:124)
您只需附加冒号和函数名称,如下所示:
codecept run tests/acceptance/VisitorCest.php:myTestName
或更短的版本:
codecept run acceptance VisitorCest:myTestName
(注意suite-name和文件名之间的空格。)
答案 1 :(得分:36)
这是有效的:
codecept run {suite-name} {file-name} .php:{function-name}
注意suite-name和文件名
之间的空格答案 2 :(得分:16)
除了 @Tzook Bar Noy 提供的答案之外,当有多个以相同名称开头的测试时,您可以添加一个尾随$
。请考虑以下示例:
<?php
use \AcceptanceTester;
class VisitorCest
{
public function aboutPage(AcceptanceTester $I)
{
}
public function aboutPageOption(AcceptanceTester $I)
{
}
}
以下命令将执行两个测试:
codecept run tests/acceptance/VisitorCest.php:aboutPage
这将只执行第一个:
codecept run tests/acceptance/VisitorCest.php:aboutPage$
答案 3 :(得分:3)
除了之前的答案,您还可以通过按给定名称分组来运行一个或多个方法:
/**
* @group test-aboutPage
*/
public function aboutPage(AcceptanceTester $I)
{
$I->wantTo('check about page');
}
使用选项-g
和组名:
$ codecept run acceptance VisitorCest -g test-aboutPage
答案 4 :(得分:2)
这就是我的工作。
php codecept.phar run unit UnitNameTest.php
答案 5 :(得分:2)
一种更适当的方法是将组注释分配给所讨论的测试用例。由于以下原因,这是可取的; 例如,如果您在同一类VisitorCest中有两个测试用例;
scanf("%d", &persons[i].grade);
执行
public function aboutPage
public function aboutPage2
将同时运行VisitorCest:aboutPage和VisitorCest:aboutPage2测试用例。
将组分配给这样的测试用例
codecept run tests/acceptance/VisitorCest.php:aboutPage
并执行这样的特定测试用例
/**
* @group aaa
*/
public function aboutPage(AcceptanceTester $I)
{
}
答案 6 :(得分:1)
如果您使用的是PHP Yii2 Framework
,那么您只能使用此命令运行一次测试。
确保您在测试目录中。
cd /codeception/frontend
codecept run -vv acceptance HomeCept
答案 7 :(得分:-1)
试试吧 phpunit --filter {TestMethodName} {FilePath}