web-dev-qa-db-fra.com

Comment puis-je exécuter un seul test d'une suite?

J'ai cette classe de test ci-dessous, et je veux exécuter un seul test à partir de celle-ci, par exemple "aboutPage". Des idées comment?

Voici comment je lance uniquement ce fichier:

codecept run tests/acceptance/VisitorCest.php

Mais maintenant, je veux exécuter un seul test à partir du fichier.

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

Vous ajoutez simplement deux points et le nom de la fonction, comme ceci:

codecept run tests/acceptance/VisitorCest.php:myTestName

ou une version plus courte:

codecept run acceptance VisitorCest:myTestName

(Notez l'espace entre le nom de la suite et le nom du fichier.)

117
Tzook Bar Noy

c'est ce qui fonctionne:

codecept run {nom-suite} {nom-fichier} .php: {nom-fonction}

remarquez l'espace entre le nom de la suite et le nom du fichier

34
Mahmoud Zalt

En plus de la réponse fournie par @Tzook Bar Noy, vous pouvez ajoutez un $ final après plusieurs tests commençant par le même nom . Prenons l'exemple suivant:

<?php

use \AcceptanceTester;

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

    public function aboutPageOption(AcceptanceTester $I)
    { 
    }
}

Où la commande suivante exécutera les deux tests:

codecept run tests/acceptance/VisitorCest.php:aboutPage

Ceci n'exécutera que le premier:

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

En plus des réponses précédentes, vous pouvez exécuter une ou plusieurs méthodes en regroupant celles-ci sous un nom donné:

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

Utilisez l'option -g et le nom du groupe:

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

c'est ce que je fais . php codecept.phar run unit UnitNameTest.php

2
Yann叶

Si vous utilisez PHP Yii2 Framework, vous ne pouvez exécuter qu'un seul test à l'aide de cette commande.

Assurez-vous d'être dans le répertoire tests.

cd /codeception/frontend

codecept run -vv acceptance HomeCept
1
Muhammad Shahzad

Une méthode plus appropriée consiste à affecter une annotation de groupe au cas de test en question. Ceci est préférable pour la raison suivante: Si vous avez deux scénarios de test, par exemple, dans la même classe VisitorCest;

public function aboutPage
public function aboutPage2

L'exécution

codecept run tests/acceptance/VisitorCest.php:aboutPage

va exécuter à la fois VisitorCest: aboutPage et VisitorCest: aboutPage2 cas de test.

Affecter un groupe à un cas de test comme celui-ci

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

Et exécutez ce cas de test particulier comme celui-ci

codecept run -g aaa

0
Akongnwi Devert