[英]How to stop a maven build, if a junit test fails?
我已經建立了一個maven項目,該項目將artefact創建一個JAR文件。 現在,我創建了一些JUnit測試,並且如果其中一個junit測試失敗,則想停止Maven構建。 為此需要采取哪些步驟? 現在,我得到了一個JAR文件,盡管一個或多個JUnit測試失敗。
我在文件夾“ src / main / resources”中創建了JUnit測試,這里是pom.xml的構建片段:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<optimize>true</optimize>
<fork>true</fork>
<source>${source.jdk}</source>
<target>${target.jdk}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>
jar-with-dependencies
</descriptorRef>
</descriptorRefs>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifestEntries>
<Source-JDK>${source.jdk}</Source-JDK>
<Target-JDK>${target.jdk}</Target-JDK>
<Project-Build-SourceEncoding>${project.build.sourceEncoding}</Project-Build-SourceEncoding>
<Maven-Build-Timestamp>${maven.build.timestamp}</Maven-Build-Timestamp>
</manifestEntries>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>${project.groupId}.${project.artifactId}.myMainFile</mainClass>
</manifest>
</archive>
<appendAssemblyId>false</appendAssemblyId>
<classifier>jar-with-dependencies</classifier>
</configuration>
<executions>
<execution>
<id>assembly-jar-Id</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
當您創建一個maven
項目時,如果使用mvn clean install
來構建源代碼,它將自動使您的構建失敗,並說測試失敗,不需要其他任何事情。
請按照此了解更多信息。
我已經在“ src / main / resources”文件夾中創建了我的JUnit測試。
那是錯誤的位置。 將您的單元測試放入“ src / test / java”中,其余的將由Maven負責。
我知道您正在尋求“快速失敗”,但據我了解,答案是否定的。 在谷歌搜索時,我發現了一個針對SureFire(運行junit測試用例的maven插件)引發的錯誤問題。
允許“快速失敗”或在第一次失敗時停止運行http://jira.codehaus.org/browse/SUREFIRE-580
仍處於打開狀態。
您可以將其添加到命令行中: mvn install -Dmaven.test.failure.ignore=true
或在pom.xml中使用以下插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.plugin.version}</version>
<configuration>
<!-- Build, even if tests fail -->
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
因此,即使您的任何測試失敗,它也將忽略並繼續您的構建過程而不會失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.