2016-01-13 2 views
7

Я немного новичок в Cucumber/Maven, поэтому вам нужна помощь при запуске тестовых примеров. Я разработал набор автоматизации в eclipse с использованием Cucumber и Selenium. Чтобы запустить определенные файлы функций/класс Runit Runit, я нажимаю правой кнопкой мыши на файлы в Eclipse и запускаю его.Как запустить одиночные файлы с огурцами через командную строку и через jenkins с помощью Maven?

Но как я могу запустить его через командную строку или Jenkins, указав конкретные команды для запуска 2-3 файлов функций (или) 2-3 классных классов Junit из 50 файлов функций или классов JUnit?

Ниже представлен пакетный проводник, как я структурирован в Eclipse.

enter image description here

Ниже pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.perspecsys</groupId> 
    <artifactId>salesforce</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>salesforce</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 


    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.11</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-java</artifactId> 
      <version>1.1.2</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-picocontainer</artifactId> 
      <version>1.1.2</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-junit</artifactId> 
      <version>1.1.2</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-java</artifactId> 
      <version>2.48.2</version> 
     </dependency> 

    </dependencies> 
</project> 

ответ

8

Вы можете запустить один файл с помощью функции cucumber.options которая перекроет все варианты у вас есть в @CucumberOptions аннотацию:

mvn test -Dcucumber.options="src/test/features/com/perspecsys/salesforce/featurefiles/Account.feature" 
+0

Спасибо за помощь. Эта команда работала в командной строке. Однако, как мне настроить то же самое в Jenkins? Я хочу запустить только пакет com.perspecsys.salesforce.featurefiles, чтобы все функциональные файлы выполнялись под ним. Можете ли вы помочь мне в пошаговой конфигурации в Дженкинсе? – Ronnie

2

Учитывая, что вы используете Maven и у вас есть отдельный класс runner для каждой функции, вы можете просто использовать Плагин Failsafe или плагин Surefire, чтобы передать параметр из командной строки, как этот, и выберите, какой бегун для запуска.

Отказоустойчивая версия:

-Dit.test=Account*Test,Login*Test 

Surefire Версия:

-Dtest=Account*Test,Login*Test 

Обратите внимание, что вы можете использовать специальные символы, проходите через запятую список тестов и ссылки на полное расположении и фильтр пакета.

-Dit.test=com.perpecsys.salesforce.*Test 

Для этого я обычно использую отказоустойчивый плагин, как Огурец испытывает более как интеграционные тесты (от конца до конца испытаний, на самом деле), и это то, что, что плагин для, в то время как Surefire плагин предназначенные для проведения модульных испытаний.

Более подробная информация на обоих плагинов:

http://maven.apache.org/surefire/maven-failsafe-plugin/examples/single-test.html

http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html

От Дженкинс это точно так же, просто использовать плагин Maven проекта для создания нового Maven проекта и в разделе Построение под Цель и опции Поле указывает команду maven как:

clean verify -Dit.test=Account*Test 

https://wiki.jenkins-ci.org/display/JENKINS/Maven+Project+Plugin

В качестве альтернативы, просто добавьте Invoke целевых показателей Maven верхнего уровня шаг к сборке, если вы не используете Maven Project плагин и добавьте параметры там.

Надеюсь, это поможет.

2

Если вы хотите, это жёстко, вы могли бы сделать что-то вроде:

import cucumber.api.CucumberOptions; 
import cucumber.api.junit.Cucumber; 
import org.junit.runner.RunWith; 

@RunWith(Cucumber.class) 
@CucumberOptions(
     features={"src/test/resources/features/belly.feature"} 
     ,glue = "steps" //whatever the name of your steps package is 
     ) 
public class RunCukesTest 
{ 
} 
Смежные вопросы