How rerun failed test cases of cucumber-jvm in jenkins

无人久伴 提交于 2019-12-24 17:51:45

问题


How to rerun failed test cases of cucumber-jvm in jenkins?

According to answers mentioned in this thread: How to rerun failed test cases in cucumber-jvm?

There is different maven command to move and run scenarios for rerun.txt. How to execute them in Jenkins with separate maven command for rerun?


回答1:


I use cucumber-serenity framework, which uses cucumber-jvm in the background to run everything. Here are the relevant parts of my pom.

I have everything in a separate project, not mixed with any other code. If this is not your case, the following might break your build!

I turn off unit tests:

    <build>
            <plugins>
                    <!-- no unit tests: skip anything named *Test -->
                    <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-surefire-plugin</artifactId>
                            <version>${surefire.plugin.version}</version>
                            <configuration>
                                    <skipTests>true</skipTests>
                            </configuration>
                    </plugin>

This does not relate to your question, but I manage all my selenium browser drivers with:

                    <!-- docs: https://ardesco.lazerycode.com/testing/webdriver/2012/08/12/introducing-the-driver-binary-downloader-maven-plugin-for-selenium.html -->
                    <plugin>
                            <groupId>com.lazerycode.selenium</groupId>
                            <artifactId>driver-binary-downloader-maven-plugin</artifactId>
                            <version>${driver-binary-downloader.plugin.version}</version>
                            <configuration>
                                    <rootStandaloneServerDirectory>${project.basedir}/selenium/bin</rootStandaloneServerDirectory>
                                    <downloadedZipFileDirectory>${project.basedir}/selenium/zip</downloadedZipFileDirectory>
                                    <customRepositoryMap>${project.basedir}/RepositoryMap.xml</customRepositoryMap>
                                    <overwriteFilesThatExist>true</overwriteFilesThatExist>
                            </configuration>
                            <executions>
                                    <execution>
                                            <phase>pre-integration-test</phase>
                                            <goals>
                                                    <goal>selenium</goal>
                                            </goals>
                                    </execution>
                            </executions>
                    </plugin>

I use the failsafe-plugin to run my integration tests:

                    <!-- integration tests: run everything named *IT -->
                    <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-failsafe-plugin</artifactId>
                            <version>${surefire.plugin.version}</version>
                            <configuration>
                                    <systemPropertyVariables>
                                            <!-- set by driver-binary-downloader-maven-plugin -->
                                            <webdriver.chrome.driver>${webdriver.chrome.driver}</webdriver.chrome.driver>
                                            <webdriver.gecko.driver>${webdriver.gecko.driver}</webdriver.gecko.driver>
                                    </systemPropertyVariables>
                            </configuration>
                            <executions>
                                    <execution>
                                            <goals>
                                                    <goal>integration-test</goal>
                                                    <goal>verify</goal>
                                            </goals>
                                    </execution>
                            </executions>
                    </plugin>
            </plugins>
    </build>

The above will not rerun any failed tests, which is what you probably want when you run stuff locally on your machine.

On Jenkins only, I turn on the rerunning of failed tests:

    <profiles>
            <profile>
                    <id>jenkins</id>
                    <activation>
                            <property>
                                    <name>env.JENKINS_HOME</name>
                            </property>
                    </activation>
                    <build>
                            <plugins>
                                    <plugin>
                                            <artifactId>maven-failsafe-plugin</artifactId>
                                            <dependencies>
                                                    <!-- docs: https://maven.apache.org/surefire/maven-failsafe-plugin/examples/rerun-failing-tests.html#Re-run_execution_in_Cucumber_JVM -->
                                                    <dependency>
                                                            <groupId>org.apache.maven.surefire</groupId>
                                                            <artifactId>surefire-junit47</artifactId>
                                                            <version>${surefire.plugin.version}</version>
                                                    </dependency>
                                            </dependencies>
                                            <configuration>
                                                    <rerunFailingTestsCount>2</rerunFailingTestsCount>
                                            </configuration>
                                    </plugin>
                            </plugins>
                    </build>
            </profile>
    </profiles>


来源:https://stackoverflow.com/questions/59364351/how-rerun-failed-test-cases-of-cucumber-jvm-in-jenkins

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!