2013-08-23 4 views
1

Что я делаю: Использование Jenkins для запуска тех же наборов тестов и тестовых примеров для различных сред - dev/staging/production. Я использую WebDriver с реализацией Java и TestNG.Выборочно отключить случаи автоматизации на окружающую среду

То, что я хотел бы сделать: Выборочно отключить некоторые тесты, но не целые наборы тестов, запуск в зависимости на окружающую среду. Вместо того, чтобы поддерживать отдельные кодовые базы между средами, я хотел бы знать, как это сделать.

Первоначальные мысли: Я думал о настройке системного свойства в Дженкинсе для каждой работы в каждой среде, и каждый декоратор теста должен был вытащить эту информацию, чтобы определить, следует ли ее запускать или нет. Я думаю, что это неуклюж, я не уверен, как это сделать, и я не уверен, что это правильный подход.

Может ли кто-нибудь сказать мне, как это сделать? Я надеюсь, что это не лучший способ.

Спасибо,

Джо

ответ

1

Вы смотрели на TestNG слушателей?

Вы можете написать прослушиватель, который непосредственно перед запуском тестового набора выполняется, но после того, как тесты для запуска были идентификаторами, итерации вокруг списка тестов и удаления тестов, которые вы не хотите запускать. Поскольку это программно, вы можете написать любую java для достижения желаемого.

Кроме того, вы можете создавать аннотации, чтобы определить, какие тесты выполняются в какой среде; например, @RunInEnvironment ({UAT ", INT"}), тогда ваш слушатель может использовать эти аннотации для удаления тестов из списка, которые не требуются.

+0

Мне нравится этот подход. Я могу поиграть с этим позже сегодня с помощью @DontRunIn ({«PROD»}), для некоторых тестов. – loljoewtf

0

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

http://testng.org/doc/documentation-main.html#exclusions

+0

Исключение групп должно быть задано перед выполнением. Это было хорошее предложение, но я не уверен, что это подходящее приложение для него. – loljoewtf

0

@MrTi это решение довольно статичное, и я полагаю, что он хочет больше динамичности.

Если вы обнаружите, что ваша среда может быть выполнена при запуске, вы можете попробовать одно из решений, описанное в that thread. Эта структура может быть также полезно: https://github.com/wolfs/testng-rules

Примечание: на JUnit вы бы использовать правила https://github.com/lacostej/web-validators/commit/2e1af8e1d9d1bf206849702d4231961563457815 (реализация использует старый API)

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