2017-09-03 204 views
1

我想在测试覆盖率不足时使jacoco插件失败。我使用例如从gradle这个页面: https://docs.gradle.org/current/userguide/jacoco_plugin.html找不到方法jacocoTestCoverageVerification()

apply plugin: 'jacoco' 

jacoco { 
    toolVersion = "0.7.6.201602180812" 
    reportsDir = file("output/jacoco/customJacocoReportDir") 
} 

jacocoTestReport { 
    reports { 
     xml.enabled false 
     csv.enabled false 
     html.enabled true 
     html.destination file("output/jacoco/jacocoHtml") 
    } 
} 

jacocoTestCoverageVerification { 
    violationRules { 
     rule { 
      limit { 
       minimum = 0.5 
      } 
     } 

     rule { 
      enabled = false 
      element = 'CLASS' 
      includes = ['org.gradle.*'] 

      limit { 
       counter = 'LINE' 
       value = 'TOTALCOUNT' 
       maximum = 0.3 
      } 
     } 
    } 
} 

不过,我得到错误:

Could not find method jacocoTestCoverageVerification() for arguments [[email protected]] on root project 'demo' of type org.gradle.api.Project.

谁能指教?

回答

3

按照the docs摇篮版本3.4或更高

For projects that also apply the Java Plugin, The JaCoCo plugin automatically adds the following tasks:

jacocoTestReport [...]

jacocoTestCoverageVerification [...]

如果在你的问题的代码块显示完整build.gradle文件,这将意味着你需要添加适用的行Java插件(apply plugin: 'java')。

当然,你也可以叫jacocoTestCoverageVerificationJacocoCoverageVerification类型的任务添加到您的构建文件在你自己:

task jacocoTestCoverageVerification(type: JacocoCoverageVerification) { 
    // configuration 
} 
+0

嗨。感谢您的想法,但我只附加了相关的jacoco代码。我确实在实际代码中应用了java插件。 – Jacob

+0

当我按照你的建议创建任务时,它给了我另一个错误:无法获取未知属性'JacocoCoverageVerification'用于根项目.... – Jacob

+0

那么,现在应该先到的问题:哪个版本的Gradle或Gradle包装器你用? 'JacocoCoverageVerification'任务类型及其缺省任务'jacocoTestCoverageVerification'仅在[version * 3.4 *](https://docs.gradle.org/3.4/userguide/jacoco_plugin.html#sec:jacoco_tasks)后才存在。版本* 3.3 *及以下版本没有提及他们的文档中的任务或任务类型,您可以检查URL。 –