webentwicklung-frage-antwort-db.com.de

Wie kann ich nur einen Test aus einer Suite ausführen?

Ich habe diese Testklasse unten und möchte nur einen Test davon ausführen, zum Beispiel die "aboutPage". Irgendwelche Ideen wie?

So führe ich nur diese Datei aus:

codecept run tests/acceptance/VisitorCest.php

Aber jetzt möchte ich nur einen Test von der Datei ausführen.

<?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');
    }
}
67
Tzook Bar Noy

Sie fügen einfach einen Doppelpunkt und den Funktionsnamen wie folgt an:

codecept run tests/acceptance/VisitorCest.php:myTestName

oder eine kürzere Version:

codecept run acceptance VisitorCest:myTestName

(Beachten Sie das Leerzeichen zwischen dem Suite-Namen und dem Dateinamen.)

117
Tzook Bar Noy

das ist was funktioniert:

codecept run {Name der Suite} {Dateiname} .php: {Name der Funktion}

beachte den Abstand zwischen dem Suite-Namen und dem Dateinamen

34
Mahmoud Zalt

Zusätzlich zur Antwort von @Tzook Bar Noy können Sie einen nachgestellten $ hinzufügen, wenn mehrere Tests mit demselben Namen beginnen . Betrachten Sie das folgende Beispiel:

<?php

use \AcceptanceTester;

class VisitorCest
{
    public function aboutPage(AcceptanceTester $I)
    {
    }

    public function aboutPageOption(AcceptanceTester $I)
    { 
    }
}

Wo der folgende Befehl beide Tests ausführt:

codecept run tests/acceptance/VisitorCest.php:aboutPage

Dies wird nur den ersten ausführen:

codecept run tests/acceptance/VisitorCest.php:aboutPage$
14
conceptdeluxe

Neben den vorherigen Antworten können Sie eine oder mehrere Methoden ausführen, indem Sie nach einem bestimmten Namen gruppieren:

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

Verwenden Sie die Option -g und den Namen der Gruppe:

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

das ist was ich mache . php codecept.phar run unit UnitNameTest.php

2
Yann叶

Wenn Sie PHP Yii2 Framework verwenden, können Sie mit diesem Befehl nur einen Test ausführen.

Stellen Sie sicher, dass Sie sich im Testverzeichnis befinden.

cd /codeception/frontend

codecept run -vv acceptance HomeCept
1

Ein besserer Weg, dies zu tun, besteht darin, dem betreffenden Testfall eine Gruppenanmerkung zuzuordnen. Dies ist aus folgendem Grund vorzuziehen: Wenn Sie zwei Testfälle haben, z. B. in derselben Klasse VisitorCest;

public function aboutPage
public function aboutPage2

Ausführen

codecept run tests/acceptance/VisitorCest.php:aboutPage

wird sowohl VisitorCest: aboutPage als auch VisitorCest: aboutPage2-Testfälle ausführen.

Weisen Sie eine Gruppe einem Testfall wie diesem zu

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

Und diesen speziellen Testfall so ausführen

codecept run -g aaa

0
Akongnwi Devert