如何从套件中仅运行一个测试?

时间:2014-08-01 06:35:17

标签: php codeception

我下面有这个测试类,我想从它只运行一个测试,例如“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');
    }
}

8 个答案:

答案 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}