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