2017-11-20 10 views
1

POM.XML을 사용하여 태그가있는 오이 스크립트를 실행할 때 문제가 있습니다. 러너 클래스없이 실행하고 싶습니다.오이 : 정의되지 않은 시나리오/POM.xml을 사용하여 태그 (주석)를 사용하여 일련의 테스트를 실행할 때의 단계

실행중인 클래스를 사용하면 스크립트가 잘 실행되고 아래 출력이 표시됩니다. 나는 pom.xml 파일을 사용하여 실행할 때

/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=51160:/Applications/IntelliJ IDEA CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/junit/lib/junit-rt.jar:/Applications/IntelliJ IDEA CE.app/Contents/plugins/junit/lib/junit5-rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/lib/tools.jar:/Users/umeshanand/Documents/Selenium/Frameworks/FW.BDD/target/test-classes:/Users/umeshanand/.m2/repository/info/cukes/cucumber-java/1.2.2/cucumber-java-1.2.2.jar:/Users/umeshanand/.m2/repository/org/seleniumhq/selenium/selenium-java/3.7.1/selenium-java-3.7.1.jar:/Users/umeshanand/.m2/repository/org/seleniumhq/selenium/selenium-api/3.7.1/selenium-api-3.7.1.jar:/Users/umeshanand/.m2/repository/org/seleniumhq/selenium/selenium-chrome-driver/3.7.1/selenium-chrome-driver-3.7.1.jar:/Users/umeshanand/.m2/repository/org/seleniumhq/selenium/selenium-edge-driver/3.7.1/selenium-edge-driver-3.7.1.jar:/Users/umeshanand/.m2/repository/org/seleniumhq/selenium/selenium-firefox-driver/3.7.1/selenium-firefox-driver-3.7.1.jar:/Users/umeshanand/.m2/repository/org/seleniumhq/selenium/selenium-ie-driver/3.7.1/selenium-ie-driver-3.7.1.jar:/Users/umeshanand/.m2/repository/org/seleniumhq/selenium/selenium-opera-driver/3.7.1/selenium-opera-driver-3.7.1.jar:/Users/umeshanand/.m2/repository/org/seleniumhq/selenium/selenium-remote-driver/3.7.1/selenium-remote-driver-3.7.1.jar:/Users/umeshanand/.m2/repository/org/seleniumhq/selenium/selenium-safari-driver/3.7.1/selenium-safari-driver-3.7.1.jar:/Users/umeshanand/.m2/repository/org/seleniumhq/selenium/selenium-support/3.7.1/selenium-support-3.7.1.jar:/Users/umeshanand/.m2/repository/net/bytebuddy/byte-buddy/1.7.5/byte-buddy-1.7.5.jar:/Users/umeshanand/.m2/repository/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar:/Users/umeshanand/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/Users/umeshanand/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/umeshanand/.m2/repository/com/google/code/gson/gson/2.8.2/gson-2.8.2.jar:/Users/umeshanand/.m2/repository/com/google/guava/guava/23.0/guava-23.0.jar:/Users/umeshanand/.m2/repository/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar:/Users/umeshanand/.m2/repository/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.jar:/Users/umeshanand/.m2/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar:/Users/umeshanand/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar:/Users/umeshanand/.m2/repository/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3.jar:/Users/umeshanand/.m2/repository/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6.jar:/Users/umeshanand/.m2/repository/junit/junit/4.12/junit-4.12.jar:/Users/umeshanand/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/Users/umeshanand/.m2/repository/info/cukes/cucumber-core/1.2.2/cucumber-core-1.2.2.jar:/Users/umeshanand/.m2/repository/info/cukes/cucumber-html/0.2.3/cucumber-html-0.2.3.jar:/Users/umeshanand/.m2/repository/info/cukes/cucumber-jvm-deps/1.0.3/cucumber-jvm-deps-1.0.3.jar:/Users/umeshanand/.m2/repository/info/cukes/gherkin/2.12.2/gherkin-2.12.2.jar:/Users/umeshanand/.m2/repository/info/cukes/cucumber-junit/1.2.2/cucumber-junit-1.2.2.jar:test/java/.:src/test/java/stepDefs" com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 runner.runnertest 
objc[976]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x102c0d4c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10352b4e0). One of the two will be used. Which one is undefined. 
Launch browser 
open google 
enter powercor 
validate results 
Launch browser 
open google 
enter powercor 
validate results 
Launch browser 
open google 
enter powercor 
validate results 

3 Scenarios (3 passed) 
12 Steps (12 passed) 
0m0.125s 

, 나는 아래의 메시지가 (필자는 세 가지 태그 중 하나를 실행하려고 유의하시기 바랍니다 @ google1, @ google2, @ google3)

--- exec-maven-plugin:1.2.1:java (default) @ FW_BDD --- 
Feature: First test to launch google 

    @google1 
    Scenario: Launch Google and search something  # features/googlenew.feature:4 
    Given I open Chrome browser 
    And user open google 
    When user enter powercor in textbox 
    Then search results should should poercor.com.au 

1 Scenarios (1 undefined) 
4 Steps (4 undefined) 
0m0.000s 


You can implement missing steps with the snippets below: 

@Given("^I open Chrome browser$") 
public void i_open_Chrome_browser() throws Throwable { 
    // Write code here that turns the phrase above into concrete actions 
    throw new PendingException(); 
} 

@Given("^user open google$") 
public void user_open_google() throws Throwable { 
    // Write code here that turns the phrase above into concrete actions 
    throw new PendingException(); 
} 

@When("^user enter powercor in textbox$") 
public void user_enter_powercor_in_textbox() throws Throwable { 
    // Write code here that turns the phrase above into concrete actions 
    throw new PendingException(); 
} 

@Then("^search results should should poercor\\.com\\.au$") 
public void search_results_should_should_poercor_com_au() throws Throwable { 
    // Write code here that turns the phrase above into concrete actions 
    throw new PendingException(); 
} 


Process finished with exit code 1 

Execution happens through below : 
clean install [email protected] 

POM.XML은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<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>FW_BDD</groupId> 
    <artifactId>FW_BDD</artifactId> 
    <version>1.0-SNAPSHOT</version> 

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

     <tagArg>[email protected]</tagArg> 
     <format>pretty</format> 


    </properties> 

    <dependencies> 

     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-java</artifactId> 
      <version>1.2.2</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-java</artifactId> 
      <version>3.7.1</version> 
     </dependency> 

     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.12</version> 
     </dependency> 

     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-core</artifactId> 
      <version>1.2.2</version> 
     </dependency> 

     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-junit</artifactId> 
      <version>1.2.2</version> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.7.0</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.20.1</version> 
       <configuration> 

        <additionalClasspathElements> 
         <additionalClasspathElement>test/java/.</additionalClasspathElement> 
         <additionalClasspathElement>src/test/java/stepDefs</additionalClasspathElement> 
         <additionalClasspathElement>test/java/.</additionalClasspathElement> 
        </additionalClasspathElements> 

        <skipTests>true</skipTests> 
        <!--<includes> 
         <include>**/*test.java</include> 
        </includes>--> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.2.1</version> 
       <executions> 
        <execution> 
         <phase>test</phase> 
         <goals> 
          <goal>java</goal> 
         </goals> 

         <configuration> 
          <classpathScope>test</classpathScope> 
          <mainClass>cucumber.api.cli.Main</mainClass> 
          <arguments> 
           <argument>--plugin</argument> 
           <argument>junit:reports/junit.xml</argument> 
           <argument>--plugin</argument> 
           <argument>json:reports/json.json</argument> 
           <argument>--plugin</argument> 
           <argument>html:reports/</argument> 
           <argument>--plugin</argument> 
           <argument>pretty</argument> 
           <argument>--strict</argument> 
           <argument>--glue</argument> 
           <argument>target/test-classes</argument> 
           <argument>target/test-classes/.</argument> 
           <argument>--tags</argument> 
           <argument>[email protected]</argument> 
           <argument>--tags</argument> 
           <argument>${tagArg}</argument> 
          </arguments> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 

     </plugins> 
    </build> 

</project> 

Java에서 Groovy를 사용해 보았는데 문제가 없었습니다. 나는 IntelliJ를 사용하고 내가 무엇을 놓치고 있는지 확신하지 못한다.

+0

이 기능은 파일 및 단계 정의는 SRC/테스트/자바에 있다는 얘기를 깜빡 했네요/stepDefs ..... src/test/resources/features – uanand

+0

러너 클래스 코드도 추가하십시오. 여기 –

+0

당신이 가서 ... @RunWith (Cucumber.class) @CucumberOptions ( // 기능 = { "SRC/테스트/자원/기능/googlenew.features"}, 기능 = { "SRC/테스트/glue = { "stepDefs"}, plugin = { "pretty : target/cucumber-pretty-report", "html : target/cucumber-html-report", "json : target/cucumber.json " "의 JUnit : 대상/cucumber.xml "} // // 태그 = {"@의 goldest1 "} ) 공용 클래스 runnertest { } – uanand

답변

0

"--glue"인수가 잘못되었습니다. 이것은 "target/test-classes"대신 단계 정의 클래스의 전체 패키지 이름이어야합니다. 이러한 클래스는 "com.cucumber.steps"패키지에있는 경우처럼 예를 들어, 다음 POM이 보일 것입니다 :

<argument>--glue</argument> 
<argument>com.cucumber.steps</argument> 
... 
<argument>src/test/resources/features</argument> 
+0

를 통해 실행하고자하는 [정보] - - 간부 - 받는다는 - 플러그인 : 1.2.1 : 자바 (기본값) @ FW_BDD --- 디렉토리 기능의 파일 0 시나리오 0 단계를 특징으로 할 경로를 얻었다 없습니다 0m0.000s – uanand

+0

내 프로젝트의 디렉토리 구조가 입니다 단계 정의 : | -src | -test | -java | -stepDefs |에서 -StepDefinitions.java 기능 파일 : | -test | | -src이 -resources | 이 - 특징 | -gogtest. feature – uanand

+0

@uanand 마지막 매개 변수로 ' src/test/resources/features'을 추가하려고 시도 했습니까? 기능 파일의 내용을 공유 할 수 있다면 좋을 것입니다. 감사. –