Как пропустить cest-тест Codeception

Я хочу пропустить только один тест в тесте cest.

С помощью тестов Cept вы можете сделать $scenario->skip(); но не работает для тестов Cest.

Поэтому я хочу сделать что-то подобное. Запустите первый тест, но пропустите второй.

Class MyTests{

public funtion test1(){
// My test steps
}

public function test2(){
$scenario->skip("Work in progress");
}
}

Заранее спасибо.

11

Решение

метод, который вы ищете, называется «неполным».

$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');
}
}
17

Другие решения

Я использую skip аннотация для моих юнит-тестов.

/**
* @skip
*/
public function MyTest(UnitTester $I)
{
...
}
19

Прежде всего, помните, что доступные вам команды будут зависеть от того, какие модули и пакеты вы загрузили. Например, если вы выполняете интеграционные тесты с включенным 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]. Используйте это, если вы хотите пропустить тест, но отметьте в отчете, что он пропущен.

4

Используйте PHPUnit_Framework_SkippedTestError. Например:

    if (!extension_loaded('mongo')) {
throw new \PHPUnit_Framework_SkippedTestError(
'Warning: mongo extension is not loaded'
);
}
1

Итак, чтобы пропустить ваш сценарий во время тестового запуска:

  1. У вас должен быть $ сценарий в качестве второго входного параметра в вашем тесте
  2. сделать вызов: $ script-> skip ();
  3. сделать вызов после пропуска: $ I-> comment («Причина, по которой сценарий пропущен»)
0
По вопросам рекламы [email protected]