2015-09-11 2 views
0

Ну я хочу создать менеджер, чтобы иметь возможность создать test suite с возможно 10 tests cases и быть в состоянии выбрать tests cases запустить, например:Выберите Тестовые в наборе тестов

class Test extends \PHPUnit_Extensions_SeleniumTestCase 
{ 
    constants... 
    protected function setUp() 
    { 
     $this->setBrowser(self::BROWSER); 
     $this->setBrowserUrl(self::URL); 
    } 
    public function testFirst() 
    { 
     code... 
    } 
    public function testSecond() 
    { 
     code... 
    } 
    public function testThird() 
    { 
     code... 
    } 
} 

Я хочу чтобы сообщить phpunit, чтобы просто запустить testFirst и testSecond и не выполнить testThird.

У меня есть идея: Создание разделенных testSuites (классы) по одному на каждый тест.

Существует лучший способ сделать это?

Спасибо!

+0

Это не связано с этим вопросом, но тесты должны выполняться абсолютно независимыми друг от друга. Узнайте больше о [FIRST] (http://stackoverflow.com/questions/18024785/tdd-first-principle) –

+0

Спасибо за ответ, мои тесты независимы, но, например, у меня есть класс с большим количеством тестов, а затем время чтобы выполнить все тесты слишком долго ... Вот почему я хочу иметь возможность выбирать свои собственные тесты, не запуская все. Я прочитаю ссылку. –

ответ

1

Испытания должны выполняться независимо и быстро.

Не всегда все тесты выполняются быстро, поэтому я обычно запускаю тесты для пользовательского каталога или набора, когда я деблокирую какой-либо модуль, и выполняю все тесты, когда хочу проверить, что моя работа не нарушает работу других частей системы. Это плохая практика! Лучше делать быстрые тесты и выполнять медленные тесты в дополнительном пакете, если вы не можете их изменить.

Я рекомендую прочитать больше о хороших принципов тестирования, которые называются F.I.R.S.T

Fast: бег (подмножество) быстро проверяет (так как вы будете запускать их все время)

Independent: никакие испытания не зависят от других, поэтому могут работать любое подмножество в любом порядке

Повторяется: выполнить N раз, g и др же результат (чтобы изолировать ошибки и позволяют автоматизировать)

Самоконтроль: тест может автоматически обнаружить, если не прошло (не человек проверка выхода)

Своевременное: написано примерно в то же время, как код (с TDD, написано первым!)