Подтвердить что ты не робот

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

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

Ответ 1

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

codecept run tests/acceptance/VisitorCest.php:myTestName

или более короткая версия:

codecept run acceptance VisitorCest:myTestName

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

Ответ 2

это то, что работает:

codecept run {имя-пакета} {имя файла}.php: {имя-функции}

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

Ответ 3

В дополнение к ответу, предоставленному @Tzook Bar Noy, вы можете добавить trailing $, когда есть несколько тестов, начинающихся с того же имени. Рассмотрим следующий пример:

<?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$

Ответ 4

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

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

Используйте опцию -g и имя группы:

$ codecept run acceptance VisitorCest -g test-aboutPage

Ответ 5

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

Ответ 6

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

Убедитесь, что вы находитесь в каталоге тестов.

cd /codeception/frontend

codecept run -vv acceptance HomeCept

Ответ 7

Более правильный способ сделать это - назначить групповую аннотацию для рассматриваемого тестового примера. Это предпочтительно по следующей причине; Если у вас есть два тестовых примера, например, в одном классе VisitorCest;

public function aboutPage
public function aboutPage2

проведение

codecept run tests/acceptance/VisitorCest.php:aboutPage

будет запускать оба теста VisitorCest: aboutPage и VisitorCest: aboutPage2.

Присвойте группу тестовому примеру

/**
 * @group aaa
 */
public function aboutPage(AcceptanceTester $I)
{
}

И выполнить этот конкретный тестовый пример, как это

codecept run -g aaa

Ответ 8

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