J'ai cette classe de test ci-dessous, et je ne veux exécuter qu'un seul test, par exemple le "aboutPage". Des idées comment?
Voici comment je n'exécute que 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');
}
}
php
codeception
Tzook Bar Noy
la source
la source
.php
extension de nom de fichier, comme ceci:codecept run -- -c frontend unit models/ContactFormTest:testSendEmail
myTestName
ne doit pas non plus être le nom complet du test. Il exécutera tous les tests avec une correspondance partiellec'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
la source
.php
pièce.En plus de la réponse fournie par @Tzook Bar Noy, vous pouvez ajouter un suivi
$
lorsqu'il y a plusieurs tests qui commencent 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:
Cela n'exécutera que le premier:
la source
Une manière plus appropriée de procéder consiste à attribuer une annotation de groupe au scénario de test en question. Ceci est préférable pour la raison suivante; Si vous avez deux cas de test par exemple dans la même classe VisitorCest;
public function aboutPage public function aboutPage2
Exécution
exécutera à la fois les cas de test VisitorCest: aboutPage et VisitorCest: aboutPage2.
Attribuer 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 ceci
codecept run -g aaa
la source
En plus des réponses précédentes, vous pouvez exécuter une ou plusieurs méthodes en regroupant par 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:la source
c'est ce que je fais.
php codecept.phar run unit UnitNameTest.php
la source
Si vous utilisez
PHP Yii2 Framework
, vous ne pouvez exécuter qu'un seul test à l'aide de cette commande.Assurez-vous que vous êtes dans le répertoire des tests.
la source
Cept
ne contient qu'un seul test, maisCest
peut contenir plusieurs tests - voir la question initialeEssayez-le phpunit --filter {TestMethodName} {FilePath}
la source