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');
}
}
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.)
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
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$
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
c'est ce que je fais .
php codecept.phar run unit UnitNameTest.php
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
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