maven multi-module(多模块)项目集成Jacoco代码覆盖率

单模块集成Jacoco比较简单,网上有很多教程,基本上也不会出现什么问题。

问题:

多模块项目中,测试用例在一个模块中,生成测试覆盖率报告只包含此模块中的类,其他模块中的类没有被分析到。

解决:

主要思路就是单独创建一个子模块,不需要有任何内容,只要pom.xml就行。在pom.xml添加其他所有子模块的dependency(所以build时需要执行到mvn install阶段,把其他所有子模块install到本地maven仓库中),使用jacoco-maven-plugin的goal:merge把各个子模块生成的jacoco.exec(plugin中不配置的话,默认叫这个)聚合成一个exec,再使用goal:report-aggregate生成report。

项目结构是这样的:

fe
-- fe
-- fe_business
-- fe_common
-- fe_facade
-- fe_service
-- fe_test
-- fe_web

其中test case在fe模块中,test case主要是使用mockMvc测试controller中的http接口。controller在fe_web模块,service层在fe_service模块,其他不介绍了。SpringBoot启动类在fe模块。
fe_test模块是为了集成Jacoco新建的。

parent pom关键配置如下:

    
        ... ...
        
    
    ... ...
    
        
            jacoco
            
                development
            
            
                false
            
            
                
                    
                        org.apache.maven.plugins
                        maven-surefire-plugin
                        2.5
                        
                            
                                **/TestUserServiceController.java
                            
                            false
                            ${itCoverageAgent}
                        
                    
                    
                        org.jacoco
                        jacoco-maven-plugin
                        0.8.3
                        
                            
                            
                            
                            
                        
                        
                            
                                prepare-unit-tests
                                
                                    prepare-agent
                                
                                
                                
                                
                            

                            
                            
                                prepare-agent
                                
                                    prepare-agent
                                
                                pre-integration-test
                                
                                    
                                    itCoverageAgent
                                
                            
                            
                                
                                
                                
                                    
                                
                            
                        
                    
                
            
        
    

maven-surefire-plugin是运行test case的,因为我只写了一个测试用例,所以使用includes指定具体的测试类。
jacoco-maven-plugin:prepare-agent是字节码插桩,生成单个module的jacoco.exec的。argline定义为属性并引用
${itCoverageAgent}是因为sure-fire argLine劫持prepare-agent的argLine??(暂不太懂 没研究)

fe-test pom.xml配置如下:

    
        
            com.example
            fe
            0.0.1-SNAPSHOT
        
        
            com.example
            fe_business
            0.0.1-SNAPSHOT
        
        
            com.example
            fe_common
            0.0.1-SNAPSHOT
        
        
            com.example
            fe_facade
            0.0.1-SNAPSHOT
        
        
            com.example
            fe_service
            0.0.1-SNAPSHOT
        
        
            com.example
            fe_web
            0.0.1-SNAPSHOT
        
    

    
        
            jacoco
            
                development
            
            
                false
            
            
                
                    
                        org.apache.maven.plugins
                        maven-surefire-plugin
                        2.19.1
                        
                            
                            
                            
                            ${itCoverageAgent} -Xms256m -Xmx2048m
                            1
                            random
                        
                    
                    
                        org.jacoco
                        jacoco-maven-plugin
                        
                            
                                report-aggregate
                                verify
                                
                                    report-aggregate
                                
                            
                            
                                merge-results
                                verify
                                
                                    merge
                                
                                
                                    
                                        
                                            ${basedir}/../
                                            
                                                **/target/jacoco.exec
                                            
                                        
                                    
                                    ${basedir}/../target/aggregate.exec
                                
                            
                        
                    
                
            
        
    

jacoco-maven-plugin:merge用来把各个module生成的jacoco.exec合并成一个并命名为aggregate.exec,jacoco-maven-plugin:report-aggregate生成报告。

在parent pom所在目录中运行

mvn clean install -P jacoco > jacoco.log

-P jacoco指定运行的profile id是jacoco。
maven profile与springboot profile的区别
> jacoco.log表示把mvn构建日志输出到文件中,因为构建日志很长,输出到文件中便于排查问题。

  • 这里是构建github一个demo项目
    的日志,从中可以看到jacoco-maven-plugin:0.7.9:prepare-agent (prepare-unit-tests)jacoco-maven-plugin:0.7.9:prepare-agent (prepare-agent)在每个模块构建的lifecycle中所处的阶段
    以及最后构建test-reporting 1.0-SNAPSHOT过程中jacoco-maven-plugin:0.7.9:report-aggregate (report-aggregate)合并jacoco.exec和jacoco-maven-plugin:0.7.9:merge (merge-results)生成report的详细过程。
    如果没有生成jacoco.exec或生成的覆盖率报告有问题,可以用自己的构建日志和此日志对比,排查关键阶段有无问题。
D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master>set MAVEN_OPTS=-Xms256m -Xmx2048m 
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for nl.deholtmans:module3:jar:1.0-SNAPSHOT
[WARNING] The expression ${version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] jacoco-multi-module-demo
[INFO] module1
[INFO] module2
[INFO] module3
[INFO] test-reporting
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building jacoco-multi-module-demo 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ jacoco-multi-module-demo ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (prepare-unit-tests) @ jacoco-multi-module-demo ---
[INFO] argLine set to -javaagent:D:\\mvn_repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\iproject\\maven-multi-module-unittest-integrationtest-jacoco-master\\target\\jacoco.exec
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (prepare-agent) @ jacoco-multi-module-demo ---
[INFO] itCoverageAgent set to -javaagent:D:\\mvn_repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\iproject\\maven-multi-module-unittest-integrationtest-jacoco-master\\target\\jacoco.exec
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:integration-test (integration-tests) @ jacoco-multi-module-demo ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:verify (integration-tests) @ jacoco-multi-module-demo ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ jacoco-multi-module-demo ---
[INFO] Installing D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\pom.xml to D:\mvn_repo\nl\deholtmans\jacoco-multi-module-demo\1.0-SNAPSHOT\jacoco-multi-module-demo-1.0-SNAPSHOT.pom
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building module1 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ module1 ---
[INFO] Deleting D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module1\target
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (prepare-unit-tests) @ module1 ---
[INFO] argLine set to -javaagent:D:\\mvn_repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\iproject\\maven-multi-module-unittest-integrationtest-jacoco-master\\module1\\target\\jacoco.exec
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ module1 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module1\src\main\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ module1 ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 1 source file to D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module1\target\classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ module1 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module1\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ module1 ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 2 source files to D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module1\target\test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ module1 ---

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running DomainClass1Test
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.212 sec - in DomainClass1Test

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ module1 ---
[INFO] Building jar: D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module1\target\module1-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (prepare-agent) @ module1 ---
[INFO] itCoverageAgent set to -javaagent:D:\\mvn_repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\iproject\\maven-multi-module-unittest-integrationtest-jacoco-master\\module1\\target\\jacoco.exec
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:integration-test (integration-tests) @ module1 ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:verify (integration-tests) @ module1 ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ module1 ---
[INFO] Installing D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module1\target\module1-1.0-SNAPSHOT.jar to D:\mvn_repo\nl\deholtmans\module1\1.0-SNAPSHOT\module1-1.0-SNAPSHOT.jar
[INFO] Installing D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module1\pom.xml to D:\mvn_repo\nl\deholtmans\module1\1.0-SNAPSHOT\module1-1.0-SNAPSHOT.pom
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building module2 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ module2 ---
[INFO] Deleting D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module2\target
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (prepare-unit-tests) @ module2 ---
[INFO] argLine set to -javaagent:D:\\mvn_repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\iproject\\maven-multi-module-unittest-integrationtest-jacoco-master\\module2\\target\\jacoco.exec
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ module2 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module2\src\main\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ module2 ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 1 source file to D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module2\target\classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ module2 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module2\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ module2 ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 2 source files to D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module2\target\test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ module2 ---

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running DomainClass2Test
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.206 sec - in DomainClass2Test

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ module2 ---
[INFO] Building jar: D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module2\target\module2-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (prepare-agent) @ module2 ---
[INFO] itCoverageAgent set to -javaagent:D:\\mvn_repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\iproject\\maven-multi-module-unittest-integrationtest-jacoco-master\\module2\\target\\jacoco.exec
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:integration-test (integration-tests) @ module2 ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:verify (integration-tests) @ module2 ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ module2 ---
[INFO] Installing D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module2\target\module2-1.0-SNAPSHOT.jar to D:\mvn_repo\nl\deholtmans\module2\1.0-SNAPSHOT\module2-1.0-SNAPSHOT.jar
[INFO] Installing D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module2\pom.xml to D:\mvn_repo\nl\deholtmans\module2\1.0-SNAPSHOT\module2-1.0-SNAPSHOT.pom
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building module3 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ module3 ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (prepare-unit-tests) @ module3 ---
[INFO] argLine set to -javaagent:D:\\mvn_repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\iproject\\maven-multi-module-unittest-integrationtest-jacoco-master\\module3\\target\\jacoco.exec
[INFO] 
[INFO] --- build-helper-maven-plugin:1.9.1:add-test-source (add-source) @ module3 ---
[INFO] Test Source directory: D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module3\src\functionaltest\java added.
[INFO] 
[INFO] --- build-helper-maven-plugin:1.9.1:add-test-resource (add-resource) @ module3 ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ module3 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ module3 ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 1 source file to D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module3\target\classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ module3 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module3\src\test\resources
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ module3 ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!
[INFO] Compiling 2 source files to D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module3\target\test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ module3 ---

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running cucumbertest.UserTest

1 Scenarios (�[32m1 passed�[0m)
3 Steps (�[32m3 passed�[0m)
0m0.841s

Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.033 sec - in cucumbertest.UserTest

Results :

Tests run: 4, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ module3 ---
[INFO] Building jar: D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module3\target\module3-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (prepare-agent) @ module3 ---
[INFO] itCoverageAgent set to -javaagent:D:\\mvn_repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\iproject\\maven-multi-module-unittest-integrationtest-jacoco-master\\module3\\target\\jacoco.exec
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:integration-test (integration-tests) @ module3 ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:verify (integration-tests) @ module3 ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ module3 ---
[INFO] Installing D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module3\target\module3-1.0-SNAPSHOT.jar to D:\mvn_repo\nl\deholtmans\module3\1.0-SNAPSHOT\module3-1.0-SNAPSHOT.jar
[INFO] Installing D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module3\pom.xml to D:\mvn_repo\nl\deholtmans\module3\1.0-SNAPSHOT\module3-1.0-SNAPSHOT.pom
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building test-reporting 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ test-reporting ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (prepare-unit-tests) @ test-reporting ---
[INFO] argLine set to -javaagent:D:\\mvn_repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\iproject\\maven-multi-module-unittest-integrationtest-jacoco-master\\testing\\target\\jacoco.exec
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ test-reporting ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\testing\src\main\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ test-reporting ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ test-reporting ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\testing\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ test-reporting ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ test-reporting ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ test-reporting ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\testing\target\test-reporting-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (prepare-agent) @ test-reporting ---
[INFO] itCoverageAgent set to -javaagent:D:\\mvn_repo\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\iproject\\maven-multi-module-unittest-integrationtest-jacoco-master\\testing\\target\\jacoco.exec
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:integration-test (integration-tests) @ test-reporting ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-failsafe-plugin:2.18.1:verify (integration-tests) @ test-reporting ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:report-aggregate (report-aggregate) @ test-reporting ---
[INFO] Loading execution data file D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module1\target\jacoco.exec
[INFO] Loading execution data file D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module2\target\jacoco.exec
[INFO] Loading execution data file D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\module3\target\jacoco.exec
[INFO] Analyzed bundle 'module1' with 1 classes
[INFO] Analyzed bundle 'module2' with 1 classes
[INFO] Analyzed bundle 'module3' with 1 classes
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:merge (merge-results) @ test-reporting ---
[INFO] Loading execution data file D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\testing\..\module1\target\jacoco.exec
[INFO] Loading execution data file D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\testing\..\module2\target\jacoco.exec
[INFO] Loading execution data file D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\testing\..\module3\target\jacoco.exec
[INFO] Writing merged execution data to D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\testing\..\target\aggregate.exec\aggregate.exec
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ test-reporting ---
[INFO] Installing D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\testing\target\test-reporting-1.0-SNAPSHOT.jar to D:\mvn_repo\nl\deholtmans\test-reporting\1.0-SNAPSHOT\test-reporting-1.0-SNAPSHOT.jar
[INFO] Installing D:\iproject\maven-multi-module-unittest-integrationtest-jacoco-master\testing\pom.xml to D:\mvn_repo\nl\deholtmans\test-reporting\1.0-SNAPSHOT\test-reporting-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] jacoco-multi-module-demo ........................... SUCCESS [  1.758 s]
[INFO] module1 ............................................ SUCCESS [  4.850 s]
[INFO] module2 ............................................ SUCCESS [  2.046 s]
[INFO] module3 ............................................ SUCCESS [  5.786 s]
[INFO] test-reporting ..................................... SUCCESS [  0.677 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15.266 s
[INFO] Finished at: 2019-04-30T11:17:26+08:00
[INFO] Final Memory: 25M/380M
[INFO] ------------------------------------------------------------------------

构建完成后在 fe_test/target/site 目录里查看报告
我只写了一个测试用例,代码覆盖率很低,但是覆盖到的3个module都已显示在报告中。


report.png

如有任何建议、或文中有错误请在评论区指出,谢谢

参考:

https://github.com/johan974/maven-multi-module-unittest-integrationtest-jacoco
http://www.lorenzobettini.it/2017/02/jacoco-code-coverage-and-report-of-multiple-eclipse-plug-in-projects/

你可能感兴趣的:(maven multi-module(多模块)项目集成Jacoco代码覆盖率)