Tenho essa classe de teste abaixo e desejo executar apenas um teste a partir dela, por exemplo, "aboutPage". Alguma ideia de como?
É assim que executo apenas este arquivo:
codecept run tests/acceptance/VisitorCest.php
Mas agora quero executar apenas um teste do arquivo.
<?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
fonte
fonte
.php
extensão do nome do arquivo, como este:codecept run -- -c frontend unit models/ContactFormTest:testSendEmail
myTestName
também não precisa ser o nome completo do teste. Ele executará todos os testes com uma correspondência parcialisso é o que funciona:
codecept executado {suite-name} {file-name} .php: {function-name}
observe o espaço entre o nome da suíte e o nome do arquivo
fonte
.php
peça.Além da resposta fornecida por @Tzook Bar Noy, você pode adicionar um trailing
$
quando houver vários testes que começam com o mesmo nome . Considere o seguinte exemplo:<?php use \AcceptanceTester; class VisitorCest { public function aboutPage(AcceptanceTester $I) { } public function aboutPageOption(AcceptanceTester $I) { } }
Onde o seguinte comando executará ambos os testes:
Isso executará apenas o primeiro:
fonte
Uma maneira mais adequada de fazer isso será atribuir uma anotação de grupo ao caso de teste em questão. Isso é preferível pelo seguinte motivo; Se você tiver dois casos de teste, por exemplo, na mesma classe VisitorCest;
public function aboutPage public function aboutPage2
Executando
executará os casos de teste VisitorCest: aboutPage e VisitorCest: aboutPage2.
Atribuir um grupo a um caso de teste como este
/** * @group aaa */ public function aboutPage(AcceptanceTester $I) { }
E execute este caso de teste particular como este
codecept run -g aaa
fonte
Além das respostas anteriores, você pode executar um ou vários métodos agrupando por um determinado nome:
/** * @group test-aboutPage */ public function aboutPage(AcceptanceTester $I) { $I->wantTo('check about page'); }
Use a opção
-g
e o nome do grupo:fonte
isto é o que eu faço.
php codecept.phar run unit UnitNameTest.php
fonte
Se estiver usando
PHP Yii2 Framework
, você poderá executar apenas um teste usando este comando.Certifique-se de estar no diretório de testes.
fonte
Cept
contém apenas um teste, mas aCest
pode conter vários testes - veja a pergunta inicialExperimente phpunit --filter {TestMethodName} {FilePath}
fonte