2017-08-20 29 views
0

問題:いくつかのテストを実行した後、私がテストを手動で実行したときに、魅力レポートを作成していくつかのレポートを生成しています。/target/allure-resultsディレクトリに移動します。魅力的なレポートがmvn testで生成されない-Darguments

しかし、私はこのようなもので、コマンドラインからMavenを呼び出した後、いくつかの引数を渡すとき:

call mvn clean 
call mvn test -Dbrowser=Chrome -DseleniumEnvironment=local -Dreporttogenerate=censoredconfigsetting -Dcucumber.options="--tags @censoredTag 

注:MVNクリーンテストは、コマンドラインから魅力-レポートを生成ず、なぜ私の議論はこれを破っていますか?

これは代わりに、/ targetに/ cucumber/results /ディレクトリを作成しています。なぜこれが異なるのか、非常に混乱しています。これらのタグに問題があるようではないようです。 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>org.kore</groupId> 
    <artifactId>kore-automation</artifactId> 
    <version>0.0.1</version> 
    <packaging>jar</packaging> 
    <name>kore-automation</name> 
    <properties> 
     <maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format> 
     <build.number>${maven.build.timestamp}/${platform}/${platformVersion}/${browser}/${browserVersion}</build.number> 
     <reports.directory>${project.build.directory}/../reports/${build.number}</reports.directory> 
     <cucumber.tags>[email protected]</cucumber.tags> 
     <!-- Needed for allure-maven-plugin to specify report version --> 
     <aspectj.version>1.8.4</aspectj.version> 
    </properties> 
    <dependencies> 
     <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>3.0.0</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> 
     <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.8.0-alpha2</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --> 
     <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.8.0-alpha2</version> 
     <scope>test</scope> 
     </dependency> 
     <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-junit</artifactId> 
     <version>2.0.0.0</version> 
     </dependency> 
     <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-server</artifactId> 
     <version>3.0.0</version> 
     <scope>test</scope> 
     </dependency> 
     <dependency> 
     <groupId>ru.yandex.qatools.allure</groupId> 
     <artifactId>allure-cucumber-jvm-adaptor</artifactId> 
     <version>1.6.3</version> 
     </dependency> 
     <dependency> 
     <groupId>info.cukes</groupId> 
     <artifactId>cucumber-java</artifactId> 
     <version>1.2.4</version> 
     <scope>test</scope> 
     </dependency> 
     <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.12</version> 
     <scope>test</scope> 
     </dependency> 
     <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>16.0.1</version> 
     </dependency> 
     <dependency> 
     <groupId>net.masterthought</groupId> 
     <artifactId>cucumber-reporting</artifactId> 
     <version>3.7.0</version> 
     </dependency> 
     <dependency> 
     <groupId>com.microsoft.sqlserver</groupId> 
     <artifactId>mssql-jdbc</artifactId> 
     <version>6.1.0.jre8</version> 
     <scope>test</scope> 
     </dependency> 
     <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-core-asl</artifactId> 
     <version>1.9.13</version> 
     </dependency> 
     <dependency> 
     <groupId>com.github.temyers</groupId> 
     <artifactId>cucumber-jvm-parallel-plugin</artifactId> 
     <version>2.1.0</version> 
     </dependency> 
    </dependencies> 
    <profiles> 
     <profile> 
     <id>read-properties</id> 
     <activation> 
      <file> 
       <exists>src/test/resources/config.properties</exists> 
      </file> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>properties-maven-plugin</artifactId> 
        <version>1.0-alpha-2</version> 
        <executions> 
        <execution> 
         <phase>validate</phase> 
         <goals> 
          <goal>read-project-properties</goal> 
         </goals> 
         <configuration> 
          <files> 
           <file>src\test\resources\config.properties</file> 
          </files> 
         </configuration> 
        </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
     </profile> 
    </profiles> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>com.github.temyers</groupId> 
      <artifactId>cucumber-jvm-parallel-plugin</artifactId> 
      <version>4.1.0</version> 
      <executions> 
       <execution> 
        <id>generateRunners</id> 
        <phase>generate-test-sources</phase> 
        <goals> 
        <goal>generateRunners</goal> 
        </goals> 
        <configuration> 
        <!-- Mandatory --> 
        <!-- comma separated list of package names to scan for glue code --> 
        <glue> 
         <package>webDriver</package> 
         <package>censored</package> 
         <package>censored</package> 
         <package>testRunner</package> 
        </glue> 
        <outputDirectory>${project.build.directory}/generated-test-sources/cucumber</outputDirectory> 
        <!-- The directory, which must be in the root of the runtime classpath, containing your feature files. --> 
        <featuresDirectory>src/test/java/</featuresDirectory> 
        <!-- Directory where the cucumber report files shall be written --> 
        <!-- cucumberOutputDir>target/cucumber-parallel</cucumberOutputDir--> 
        <!-- comma separated list of output formats json,html,rerun.txt --> 
        <!-- format>json</format--> 
        <!-- CucumberOptions.strict property --> 
        <!-- strict>true</strict>--> 
        <!-- CucumberOptions.monochrome property --> 
        <monochrome>true</monochrome> 
        <!-- The tags to run, maps to CucumberOptions.tags property you can pass ANDed tags like "@tag1","@tag2" and ORed tags like "@tag1,@tag2,@tag3" --> 
        <tags /> 
        <!-- If set to true, only feature files containing the required tags shall be generated. --> 
        <filterFeaturesByTags>false</filterFeaturesByTags> 
        <!-- Generate TestNG runners instead of default JUnit ones. --> 
        <useTestNG>false</useTestNG> 
        <!-- The naming scheme to use for the generated test classes. One of 'simple' or 'feature-title' --> 
        <namingScheme>simple</namingScheme> 
        <!-- The class naming pattern to use. Only required/used if naming scheme is 'pattern'.--> 
        <namingPattern>Parallel{c}IT</namingPattern> 
        <!-- One of [SCENARIO, FEATURE]. SCENARIO generates one runner per scenario. FEATURE generates a runner per feature. --> 
        <parallelScheme>FEATURE</parallelScheme> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.2</version> 
      <configuration> 
       <encoding>UTF-8</encoding> 
       <source>1.7</source> 
       <target>1.7</target> 
       <compilerArgument>-Werror</compilerArgument> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.18.1</version> 
     </plugin> 
     <plugin> 
      <groupId>ru.yandex.qatools.allure</groupId> 
      <artifactId>allure-maven-plugin</artifactId> 
      <version>2.6</version> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.19.1</version> 
      <configuration> 
       <testFailureIgnore>false</testFailureIgnore> 
       <argLine>-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar 
       -Dcucumber.options="--plugin ru.yandex.qatools.allure.cucumberjvm.AllureReporter"</argLine> 
       <properties> 
        <property> 
        <name>listener2</name> 
        <value>/core-automation/src/test/java/testRunner/CustomAllureListener</value> 
        </property> 
       </properties> 
       <forkCount>10</forkCount> 
       <reuseForks>true</reuseForks> 
       <includes> 
        <include>**/*IT.class</include> 
       </includes> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>org.aspectj</groupId> 
        <artifactId>aspectjweaver</artifactId> 
        <version>${aspectj.version}</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
     </plugins> 
     <pluginManagement> 
     <plugins> 
      <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
        <pluginExecutions> 
         <pluginExecution> 
          <pluginExecutionFilter> 
           <groupId>org.codehaus.mojo</groupId> 
           <artifactId>properties-maven-plugin</artifactId> 
           <versionRange>[1.0-alpha-2,)</versionRange> 
           <goals> 
           <goal>read-project-properties</goal> 
           </goals> 
          </pluginExecutionFilter> 
          <action> 
           <ignore /> 
          </action> 
         </pluginExecution> 
         <pluginExecution> 
          <pluginExecutionFilter> 
           <groupId>com.github.temyers</groupId> 
           <artifactId>cucumber-jvm-parallel-plugin</artifactId> 
           <versionRange>[4.1.0,)</versionRange> 
           <goals> 
           <goal>generateRunners</goal> 
           </goals> 
          </pluginExecutionFilter> 
          <action> 
           <ignore /> 
          </action> 
         </pluginExecution> 
        </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
     </pluginManagement> 
    </build> 
</project> 

私は、並行して、私のテストを実行するには、それら各参照並列.ITファイルを生成する際に気づい:日食の内部で実行している場合ので、まだ

plugin = {"json:C:/Users/sy/git/censor/censor/target/cucumber-parallel/1.json"} 

ことで少し混乱しを - >のように実行します。 Mavenビルド... - >クリーンテスト私はmvn argsのようなコマンドを渡すときにのみ作成されたこれらのjsonファイルを持っていない

もっと詳しく見ると、-Dcucumber.Options for tags mvnコールでは、を上書きしているようですはpom.xmlの私の確実なプラグインの中にあります

お時間を頂きまして、ありがとうございました。

+0

properties-maven-pluginバージョン1.0.0を使用することをお勧めします。これは、プラグインに既にマッピングが含まれているため、m2eの設定を削除できることを意味します... – khmarbaise

答えて

1

私は長い間、問題を理解していました.Ducucumber.optionsタグを渡すと、allurereporterのmaven surefire argLineが上書きされました。

call mvn clean test -Dbrowser=Chrome -DseleniumEnvironment=local -Dcucumber.Options="--plugin ru.yandex.qatools.allure.cucumberjvm.AllureReporter --tags @censoredtag" 
call mvn allure:report 

と私のMavenの確実なプラグインから-Dcucumber.Options argLineを取り除く:以下を実行することにより、固定

関連する問題