Как пропустить тест 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'
        );
    }

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

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