Как пропустить тест Codeception cest
Я хочу пропустить только один тест в тесте codeception cest.
С помощью тестов Cept вы можете сделать $scenario->skip();
но не работает для тестов Cest.
поэтому я хочу сделать что-то вроде этого. Запустите первый тест, но пропустите второй.
Class MyTests{
public funtion test1(){
// My test steps
}
public function test2(){
$scenario->skip("Work in progress");
}
}
спасибо заранее.
5 ответов
метод, который вы ищете, называется "неполным".
$scenario->incomplete('your message, why skipping');
если вы хотите использовать сценарии в файлах Cest, вы можете получить его со вторым параметром вашего метода тестирования:
class yourCest
{
public function yourTest(WebGuy $I, $scenario)
{
$scenario->incomplete('your message');
}
}
или вы можете использовать $scenario->skip('your message')
class yourCest
{
public function yourTest(WebGuy $I, $scenario)
{
$scenario->skip('your message');
}
}
Я использую skip
аннотация для моих модульных тестов.
/**
* @skip
*/
public function MyTest(UnitTester $I)
{
...
}
прежде всего, помните, что какие команды доступны для вас будут зависеть от того, какие модули и комплекты вы загрузили. Например, если вы делаете интеграционные тесты с WordPress по умолчанию включен YML:
$scenario->skip('your message');
не будет работать в Cest или тест из коробки, но будет работать в принятии.
на самом деле, как правило, эта команда будет работать с тестами Cept [Cepts обычно прием, как тесты, Cests и тесты, как правило, PHPUnit, как ООП тесты.] Кроме того, вам нужно передать $scenario вашей функции. Это не документировано, и я не могу заставить его работать в Cests. Не заставляйте меня начинать с того, насколько плохой выбор "$scenario" является ключевым словом для BDD-фреймворка! "Сценарий" - это ключевое слово в Gherkin, относящееся к тому, что является" объектом шага " в Codeception. В Codeception он, похоже, используется как избыточная форма "среды", хотя уже есть среды, комплекты и группы. Как и большинство этих замечательных рамок, docs и имена функций должны быть переделаны носителями английского языка, во второй раз! [помнишь "веб-парня"? Чертовы сексисты европейцы! Lol].
Если вы используете
/**
* @skip
*/
public function myTest(){
//this test is totally ignored
}
Аннотация прямо над вашей функцией в Cest или тесте будет пропущена и даже не появится в отчете. [Действительно пропустите это]. Используйте это, если вы хотите полностью скрыть тест.
Если вы используете команду PHPUnit напрямую:
public function myTest(){
throw new \PHPUnit_Framework_SkippedTestError('This test is skipped');
//this test will appear as a yellow “skipped” test in the report
}
Это создаст пропущенный тест в отчет, станет желтым в отчете HTML [--html]. Используйте это, если вы хотите пропустить тест, но обратите внимание в отчете, что он пропущен.
Используйте PHPUnit_Framework_SkippedTestError. Например:
if (!extension_loaded('mongo')) {
throw new \PHPUnit_Framework_SkippedTestError(
'Warning: mongo extension is not loaded'
);
}
Итак, чтобы сделать ваш сценарий пропущенным во время тестового запуска:
- У вас должен быть $ scenario в качестве второго входного параметра в вашем тесте
- сделать вызов: $ scenario - >skip ();
- сделать вызов после пропуска: $I - > комментарий ("причина, почему сценарий пропущен")