如何在java中测试代码覆盖率(gradle多模块项目)

axr492tv  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(278)

我已经在gradle项目中集成了jacoco,但是对于大多数类,我得到了这样一个错误:“在生成报告的过程中找不到源文件”com/ourprojectname/..…/model/modelone.java“。而且只有在application.java中我没有问题,可以看到代码。我们的架构如下所示:

  1. proj1
  2. -src
  3. --main
  4. ---java
  5. ----some .java files
  6. ... // same proj2 ... projN
  7. src
  8. -main
  9. --java
  10. ---com.OurProjectName.api
  11. ----Application.java
  12. -test
  13. --test .java files
  14. build.gradle

谁知道我应该如何在gradle中编写代码来修复我的问题(更高描述)?
编辑

  1. allprojects {
  2. group = 'com.OurProjectName.project'
  3. version = '1.1.0-SNAPSHOT'
  4. apply plugin: 'java'
  5. apply plugin: 'jacoco'
  6. // ... other plugins
  7. jacoco {
  8. toolVersion = "0.8.5"
  9. }
  10. // other settings...
  11. }
  12. def otherProjects = ['proj1', ..., ':projN']
  13. test {
  14. useTestNG()
  15. finalizedBy jacocoTestReport
  16. }
  17. otherProjects.each {
  18. evaluationDependsOn it
  19. }
  20. jacocoTestReport {
  21. FileTree sourceTree = files().getAsFileTree()
  22. FileTree classTree = files().getAsFileTree()
  23. otherProjects.each {
  24. sourceTree += project(it).sourceSets.main.allJava
  25. classTree += project(it).sourceSets.main.output.asFileTree
  26. }
  27. getAdditionalSourceDirs().setFrom(sourceTree)
  28. getAdditionalClassDirs().setFrom(classTree)
  29. reports {
  30. xml {
  31. enabled true
  32. xml.destination file("${buildDir}/reports/jacocoXML")
  33. }
  34. html {
  35. enabled true
  36. html.destination file("${buildDir}/reports/jacocoHtml")
  37. }
  38. csv.enabled = false
  39. }
  40. }
  41. dependencies {
  42. implementation project(':proj1')
  43. ...
  44. implementation project(':projN')
  45. testImplementation '...'
  46. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题