当前位置:  开发笔记 > 运维 > 正文

maven surefire插件可以在直接调用时运行多个测试执行吗?(声纳+詹金斯没有运行所有单元测试)

如何解决《mavensurefire插件可以在直接调用时运行多个测试执行吗?(声纳+詹金斯没有运行所有单元测试)》经验,为你挑选了0个好方法。

我有一个使用surefire插件进行单元测试的maven项目.目前测试分为两个执行default-testunitTests,两者都绑定到测试目标,如下所示:


  
    org.apache.maven.plugins
    maven-surefire-plugin
    
      
      
        default-test
        
          test
        
        
           ... 
        
      
      
      
        unitTests
        
          test
        
        
           ... 
        
      
    
  

这在运行时工作正常mvn test:

$ mvn test
...
[INFO] maven-surefire-plugin:2.13:test (default-test)
...
[INFO] maven-surefire-plugin:2.13:test (unitTests)

我在Jenkins上使用Sonar插件生成代码指标,Jenkins的设置如下:

运行构建操作 mvn clean install -DskipTests

运行Sonar插件作为后构建操作

这意味着Sonar插件运行单元测试,单元测试仅运行一次.当Sonar插件运行时,我看到以下输出:

[INFO] maven-surefire-plugin:213:test (default-cli) 

请注意,只调用default-cli执行而不是default-test + unitTests,因为(我假设)surefire插件是mvn surefire:test通过mvn test生命周期而不是通过生命周期直接调用的.

我可以向POM文件添加default-cli执行,并从默认测试执行中复制配置,但这只会运行一组单元测试.在unitTests执行中配置的单元测试根本不运行,即使该执行绑定到相同的目标.

如何在Sonar插件调用时确保调用default-cliunitTests执行mvn surefire:test

我想也许我的Jenkins设置应该改变,以便单元测试在正常构建操作中运行,生成代码覆盖率报告,然后Sonar插件作为构建后操作运行并加载这些报告以执行分析.不确定这是否可行,或者我的POM文件需要做哪些更改才能支持这一点(希望对POM文件进行最小的更改是另一个目标).

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有