java - Allure reporting does not generate with mvn test -Darguments -
problem: using allure reporting generate reports after running tests, when run tests manually within eclipse allure-results directory created inside /target/allure-results directory.
however, when pass in arguments after calling maven command line, this:
call mvn clean call mvn test -dbrowser=chrome -dseleniumenvironment=local -dreporttogenerate=censoredconfigsetting -dcucumber.options="--tags @censoredtag
note: mvn clean test does generate allure-reports command line, why arguments breaking this?
this instead, creating /cucumber/results/ directory in /target, confused why differs, doesn't seem these tags should have problems there, suspect possibly pom.xml causing issues.
<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>~@ignore</cucumber.tags> <!-- needed allure-maven-plugin 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 scan 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> <!-- directory, must in root of runtime classpath, containing feature files. --> <featuresdirectory>src/test/java/</featuresdirectory> <!-- directory cucumber report files shall 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> <!-- tags run, maps cucumberoptions.tags property can pass anded tags "@tag1","@tag2" , ored tags "@tag1,@tag2,@tag3" --> <tags /> <!-- if set true, feature files containing required tags shall generated. --> <filterfeaturesbytags>false</filterfeaturesbytags> <!-- generate testng runners instead of default junit ones. --> <usetestng>false</usetestng> <!-- naming scheme use generated test classes. 1 of 'simple' or 'feature-title' --> <namingscheme>simple</namingscheme> <!-- class naming pattern use. required/used if naming scheme 'pattern'.--> <namingpattern>parallel{c}it</namingpattern> <!-- 1 of [scenario, feature]. scenario generates 1 runner per scenario. feature generates 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 used store eclipse m2e settings only. has no influence on 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>
i noticed when generate parallel .it files run tests in parallel, each reference:
plugin = {"json:c:/users/sy/git/censor/censor/target/cucumber-parallel/1.json"}
still tad confused because when running inside eclipse -> run as: maven build... -> clean test not have these json files created, when passing in command mvn args them
looking more closely, when pass in -dcucumber.options tags in mvn call, seems overwriting -dcucumber.options="--plugin ru.yandex.qatools.allure.cucumberjvm.allurereporter"
inside surefire plugin in pom.xml
thanks time, appreciated.
after long morning i've figured out problem, passing of -dcucumber.options tags overwriting maven surefire argline allurereporter.
fixed running following:
call mvn clean test -dbrowser=chrome -dseleniumenvironment=local -dcucumber.options="--plugin ru.yandex.qatools.allure.cucumberjvm.allurereporter --tags @censoredtag" call mvn allure:report
and removing -dcucumber.options argline maven surefire plugin.
Comments
Post a Comment