簡體   English   中英

如果junit測試失敗,如何停止Maven構建?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM