maven打包会自动执行test方法,如何skipTests关闭maven自动执行test

现象

对maven项目进行package打包时,发现自动执行了test单元测试,可能到导致执行了意向不到的结果(比如测试修改数据库)。

分析

maven中的maven-surefire-plugin包,在package时会对项目中test/java目录下查找符合规则的Test类进行执行,进行自动化测试。参考完档:http://maven.apache.org/guides/getting-started/index.html

Test类名匹配规则有:

  • **/*Test
  • **/*TestCase
  • **/*Tests (文档中没有)
  • **/Test*

Test类名忽略规则有:

  • **/Abstract*Test.java (文档中,测试没用)
  • **/Abstract*TestCase.java (文档中,测试没用)

验证

类名

执行结果

[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ parent-tester ---
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.lizz.LizzTests
@@@@@LizzTests@@@@@
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.043 s - in com.lizz.LizzTests
[INFO] Running com.lizz.LizzTest
@@@@@LizzTest@@@@@
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 s - in com.lizz.LizzTest
[INFO] Running com.lizz.Abstract8Test
@@@@@Abstract8Test@@@@@
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in com.lizz.Abstract8Test
[INFO] Running com.lizz.LizzTestCase
@@@@@LizzTestCase@@@@@
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 s - in com.lizz.LizzTestCase
[INFO] Running com.lizz.TestAbstract
@@@@@TestAbstract@@@@@
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in com.lizz.TestAbstract
[INFO] Running com.lizz.AbstractLizzTest
@@@@@AbstractLizzTest@@@@@
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in com.lizz.AbstractLizzTest
[INFO] Running com.lizz.AbstractLizzTests
@@@@@AbstractLizzTests@@@@@
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 s - in com.lizz.AbstractLizzTests
[INFO] Running com.lizz.AbstractLizzTestCase
@@@@@AbstractLizzTestCase@@@@@
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in com.lizz.AbstractLizzTestCase
[INFO] Running com.lizz.Test1
@@@@@Test1@@@@@
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in com.lizz.Test1
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 9, Failures: 0, Errors: 0, Skipped: 0

 

解决方案

方案1

使用spring-boot-maven-plugin方式打包,可以增加参数 <skipTests>true</skipTests>

    <properties>
        <skipTests>true</skipTests>
    </properties>

方案2

使用maven-surefire-plugin方式打包,可以增加配置<skip>true</skip>

  <build>
        <plugins>                    
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

方案3

idea中设置关闭

方案4

在执行命令中增加 -DskipTests=true,跳过test。

 

/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home/bin/java .... -DskipTests=true package
[INFO] Scanning for projects...
[INFO] 
....

 

效果

收获

合理使用单元测试可以减少手动测试的时间,在持续集成过程中加快开发测速度。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lizz666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值