以下にこのテストクラスがあり、そこから1つのテストだけを実行したいと思います。たとえば、「aboutPage」です。どのようなアイデアですか?
これは私がこのファイルのみを実行する方法です:
codecept run tests/acceptance/VisitorCest.php
しかし、今はファイルから1つのテストのみを実行したいです。
<?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');
}
}
次のように、コロンと関数名を追加するだけです。
codecept run tests/acceptance/VisitorCest.php:myTestName
またはより短いバージョン:
codecept run acceptance VisitorCest:myTestName
(スイート名とファイル名の間のスペースに注意してください。)
これが機能するものです:
codecept run {スイート名} {ファイル名} .php:{関数名}
スイート名とファイル名の間のスペースに注意してください
@ 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$
前の回答に加えて、特定の名前でグループ化することにより、1つまたは複数のメソッドを実行できます。
/**
* @group test-aboutPage
*/
public function aboutPage(AcceptanceTester $I)
{
$I->wantTo('check about page');
}
オプション-g
とグループの名前を使用します。
$ codecept run acceptance VisitorCest -g test-aboutPage
これを行うより適切な方法は、問題のテストケースにグループアノテーションを割り当てることです。これは、次の理由で望ましいです。たとえば、同じクラスVisitorCestに2つのテストケースがある場合。
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
これが私がすることです。 php codecept.phar run unit UnitNameTest.php
PHP Yii2 Framework
を使用している場合、このコマンドを使用して実行できるテストは1つだけです。
Testsディレクトリにいることを確認してください。
cd /codeception/frontend
codecept run -vv acceptance HomeCept