2015-03-11 3 views
8

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

Используя контрольные тесты, вы можете сделать $scenario->skip();, но не работает для тестов Cest.

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

Class MyTests{ 

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

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

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

ответ

15

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

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

Или '$ script-> skip' – tivnet

+0

Обратите внимание, что вы передаете' $ scene' в качестве параметра вашего тестового метода. Я пропустил это в первом чтении :( –

+1

Я просто пробовал «неполный» и «пропустить», но ничего не происходит. Нет ошибки, нет сообщения, тест помечается как «ОК» при запуске пакета. Любая мысль? – ByScripts

0

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

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

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

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

Это был единственный вариант, который работал для меня –

1

Использование PHPUnit_Framework_SkippedTestError. Например:

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

Прежде всего, помните, что команды, которые доступны для вас будет зависеть от того, какие модули и сьютов вы загрузили. Например, если вы делаете тесты интеграции с WordPress по умолчанию включен YML:

$scenario->skip('your message'); 

не будет работать в Cest или Протестируйте из коробки, но будет работать в акцепте.

Фактически, обычно эта команда будет работать с Cept tests [Cepts, как правило, такие как тесты, тесты и тесты обычно являются PHPUnit, такими как тесты OOP]. Кроме того, вам нужно передать $ script в вашу функцию. Это не ясно документировано, и я не могу заставить его работать в Cests. Не заставляйте меня начинать с того, насколько плохой вариант «сценарий» - это ключевое слово для рамки BDD! «Сценарий» - это ключевое слово в Gherkin, относящееся к тому, что является «шаговым объектом» в 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]. Используйте это, если вы хотите пропустить тест, но обратите внимание на то, что он пропущен.

Смежные вопросы