Перейти к содержимому

Фотография

Выбор Cucumber Feature file через Jenkins

Selenium WebDriver Cucumber Jenkins Maven Java

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 DennisM

DennisM

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • ФИО:Dennis M
  • Город:Ralegh NC, USA

Отправлено 03 марта 2016 - 19:41

Имеем:
WebDriver -> Cucumber -> Maven build -> Jenkins
 
В Cucumber Запускаем всё это из:
-----
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
 
import org.junit.runner.RunWith;
 
@RunWith(Cucumber.class)
@CucumberOptions(
dryRun = false,
monochrome = true,
plugin = {"pretty", "html:target/cucumber"},
features="src/test/resources/Features/Tests",  //<<< ------   Вот это надо менять
glue={"com.work.test.CucumberStepDefinition"}
)
public class Pixie {
}

-------

 

Вопрос:
Как из Jenkins выбирать папку с Cucumber тестами?
 
Из Jenkins Build можно достать Choice параметр через:
String environment = System.getenv("environment");
 
Если сделать так:
features="src/test/resources/Features/" + System.getenv("environment") + "
 
То огурец ругается что этот параметр должен быть статическим...
 
???

  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 04 марта 2016 - 09:31

Сделать статическую переменную и поместить туда System.getenv("environment"), а потом использовать её.


  • 0

#3 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 04 марта 2016 - 10:51

Всё гораздо хуже -- всё, что используется в аннотациях, должно вычисляться во время компиляции, то есть там можно использовать только константы.

Ищите другой путь, как можно указать фичи, которые необходимо запустить.


  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#4 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 04 марта 2016 - 12:17

Мне на практике было удобнее не фичи выбирать, а фильтровать тесты по тэгам.

Тэг можно навесить как на отдельный тест, так и на фичу. В итоге, в параметре features указываешь корневую папку, где лежит вообще всё. А дополнительно в командной строке в cucumber.options укаываешь нужные тэги.

Важная особенность: ключей "--tags" может быть несколько, а в одном ключе можно указать несколько тэгов через запятую. Так вот, при перечислении в одном ключе выборки объединяются (OR), а для разных ключей применяется пересечение (AND). В доках этого не видел, выяснил экспериментально.


  • 2

#5 DennisM

DennisM

    Новый участник

  • Members
  • Pip
  • 55 сообщений
  • ФИО:Dennis M
  • Город:Ralegh NC, USA

Отправлено 04 марта 2016 - 14:22

Мне на практике было удобнее не фичи выбирать, а фильтровать тесты по тэгам.

Тэг можно навесить как на отдельный тест, так и на фичу. В итоге, в параметре features указываешь корневую папку, где лежит вообще всё. А дополнительно в командной строке в cucumber.options укаываешь нужные тэги.

Важная особенность: ключей "--tags" может быть несколько, а в одном ключе можно указать несколько тэгов через запятую. Так вот, при перечислении в одном ключе выборки объединяются (OR), а для разных ключей применяется пересечение (AND). В доках этого не видел, выяснил экспериментально.

 
Звучит неплохо. Но! Не хочется давать мануальщикам бомбить чего-то в командной строке.  :secret: Надо им давать только Choice Option из Jenkins drop-down...  :rtfm:
Думаю сделать несколько .java файлов с разными @CucumberOptions.
 
В pom.xml сделать разные профайлы. И в профайлах выбирать файл для запуска...
Минус в том что придется загадить pom.xml кучей профайлов...
 
Это дело:
---
<property>
<name>environment</name>
<value>TestsSetOne</value>
</property>
---
 
 он понимает так же как Java:
String environment = System.getenv("environment");
 
 
 
Вот это придется размножить:
 
 
----
<profile>
<id>TestsSetOne</id>
<activation>
<property>
<name>environment</name>
<value>TestsSetOne</value>
</property>
</activation>
 
 
<build>
<plugins>
 
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
 
<includes>
<include>**/CucumberRun/SetOne.java</include>
</includes>
 
<!-- <parallel>all</parallel> <runOrder>random</runOrder> <useUnlimitedThreads>true</useUnlimitedThreads> 
<parallelOptimized>true</parallelOptimized> -->
<argLine>-Xmx512m -XX:MaxPermSize=256m</argLine>
</configuration>
</plugin>
 
</plugins>
</build>
 
</profile>

  • 0



Темы с аналогичным тегами Selenium, WebDriver, Cucumber, Jenkins, Maven, Java

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных