Я хочу пропустить только один тест в тесте cest.
С помощью тестов Cept вы можете сделать $scenario->skip();
но не работает для тестов Cest.
Поэтому я хочу сделать что-то подобное. Запустите первый тест, но пропустите второй.
Class MyTests{
public funtion test1(){
// My test steps
}
public function test2(){
$scenario->skip("Work in progress");
}
}
Заранее спасибо.
метод, который вы ищете, называется «неполным».
$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 или Test из коробки, но будет работать в Acceptance.
Фактически, как правило, эта команда будет работать с тестами Cept [Cepts — это обычно Acceptance, как тесты, Cests и Tests — обычно PHPUnit, как OOP-тесты]. Кроме того, вам нужно передать $ script вашей функции. Это четко не задокументировано, и я не могу заставить его работать в Cests. Не начинайте рассказывать о том, насколько неудачен выбор «сценария $» в качестве ключевого слова для среды BDD! «Сценарий» — это ключевое слово в корнишоне, обозначающее «объект шага» в Codeception. В Codeception он, кажется, используется в качестве избыточной формы «среды», даже если уже существуют среды, наборы и группы. Как и большая часть этого замечательного фреймворка, имена носителей и функций должны быть переделаны носителями английского языка во второй раз! [помните «веб-парень»? Блин сексисты европейцы! Лол].
Если вы используете
/**
* @skip
*/
public function myTest(){
//this test is totally ignored
}
Аннотация прямо над вашей функцией в Cest или Test она будет пропущена и даже не появится в отчете. [Действительно пропустить это]. Используйте это, если вы хотите полностью скрыть тест.
Если вы используете команду 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'
);
}
Итак, чтобы пропустить ваш сценарий во время тестового запуска: