Как я могу запустить только один тест из набора?


у меня есть этот тестовый класс ниже, и я хочу запустить только один тест из него, например "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');
    }
}
7 62

7 ответов:

вы просто добавляете двоеточие и имя функции, например:

codecept run tests/acceptance/VisitorCest.php:myTestName

или сокращенный вариант:

codecept run acceptance VisitorCest:myTestName

(обратите внимание на пробел между именем пакета и именем файла.)

вот что работает:

codecept run {suite-name} {file-name}.php: {function-name}

обратите внимание на пространство между именем пакета и именем файла

В дополнение к ответу, предусмотренных @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$

В дополнение к предыдущим ответам, вы можете запустить один или несколько методов, с помощью группировки по имени:

/**
 * @group test-aboutPage
 */
public function aboutPage(AcceptanceTester $I)
{
    $I->wantTo('check about page');
}

использовать параметр -g и название группы:

$ codecept run acceptance VisitorCest -g test-aboutPage

это то, что я делаю. php codecept.phar run unit UnitNameTest.php

Если вы используете PHP Yii2 Framework, то вы можете запустить только один тест с помощью этой команды.

убедитесь, что вы находитесь в директории tests.

cd /codeception/frontend

codecept run -vv acceptance HomeCept

попробуй phpunit --filter {TestMethodName} {FilePath}