web-dev-qa-db-ja.com

スイートから1つのテストのみを実行するにはどうすればよいですか?

以下にこのテストクラスがあり、そこから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');
    }
}
78
Tzook Bar Noy

次のように、コロンと関数名を追加するだけです。

codecept run tests/acceptance/VisitorCest.php:myTestName

またはより短いバージョン:

codecept run acceptance VisitorCest:myTestName

(スイート名とファイル名の間のスペースに注意してください。)

130
Tzook Bar Noy

これが機能するものです:

codecept run {スイート名} {ファイル名} .php:{関数名}

スイート名とファイル名の間のスペースに注意してください

37
Mahmoud Zalt

@ 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$
16
conceptdeluxe

前の回答に加えて、特定の名前でグループ化することにより、1つまたは複数のメソッドを実行できます。

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

オプション-gとグループの名前を使用します。

$ codecept run acceptance VisitorCest -g test-aboutPage
4
Igor Parra

これを行うより適切な方法は、問題のテストケースにグループアノテーションを割り当てることです。これは、次の理由で望ましいです。たとえば、同じクラス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

3
Akongnwi Devert

これが私がすることです。 php codecept.phar run unit UnitNameTest.php

2
Yann叶

PHP Yii2 Frameworkを使用している場合、このコマンドを使用して実行できるテストは1つだけです。

Testsディレクトリにいることを確認してください。

cd /codeception/frontend

codecept run -vv acceptance HomeCept
1