Maven打包跳過單元測試


Maven的生命周期

clean、resources、compile、testResources、testCompile、test(測試,打包時跳過)、jar(打包)、install(發布到本地庫)、deploy(發布到遠程庫)

package命令完成了項目編譯、單元測試、打包功能,但沒有把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫和遠程maven私服倉庫
install命令完成了項目編譯、單元測試、打包功能,同時把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫,但沒有布署到遠程maven私服倉庫
deploy命令完成了項目編譯、單元測試、打包功能,同時把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫和遠程maven私服倉庫

使用Maven打包的時候,可能會因為單元測試打包失敗,這時候就需要跳過單元測試。

Maven跳過單元測試有三種方法。

依賴范圍說明

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
scope用來控制依賴和編譯、測試、運行的classpath的關系
compile:默認編譯依賴范圍,對於編譯、測試、運行三種classpath都有效。
test:測試依賴范圍。只對於測試classpath有效。
provided:已提供依賴訪問。對於編譯、測試的classpath有效,但對於運行無效,因為容器已經提供,例如servlet-api
依賴范圍(Scope) 對主代碼classpath有效 對測試代碼classpath有效 被打包,對運行時classpath有效 例子
compile Y Y Y log4j
test - Y - junit
provided Y Y - servlet-api
runtime - - Y JDBC Driver
 
 
 
 
 
 
 
 

一、命令行方式跳過測試

我們可以用兩種命令來跳過測試

  • mvn clean install -DskipTests
  • mvn clean install -Dmaven.test.skip=true

- DskipTests,不執行測試用例,但編譯測試用例類生成相應的class文件至target/test-classes下

- Dmaven.test.skip=true,不執行測試用例,也不編譯測試用例類

使用maven.test.skip,不但跳過單元測試的運行,也跳過測試代碼的編譯;

使用 mvn package -DskipTests 跳過單元測試,但是會繼續編譯。

 

二、pom.xml中配置跳過測試

可以在pom.xml中添加如下配置來跳過測試:

<build>
   <plugins>
        <!-- maven 打包時跳過測試 -->
        <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
        </plugin>
   </plugins>
<build>         

三、Idea中配置跳過測試

Idea是我們常用的開發工具,我們經常直接用Idea的插件來進行打包。我們可以通過配置來跳過測試。

1、直接配置

Maven命令欄的工具欄有下圖中的圖標,這個圖標就是 Skip Tests。點擊選中,再用LifeStyle中的打包就會跳過測試.

在這里插入圖片描述

 

2、更改Maven配置

  • 方式1:打開配置,找到Maven-->Runner,在VM option中添加 -Dmaven.test.skip=true

在這里插入圖片描述

  • 方式2:Runner--> Propertis 中選中 Skip tests

在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM