2016-11-22 11 views
0

jacoco 보고서를 생성하려고하는데 testCoverageEnabled 속성을 true로 설정하면 계속 오류가 발생합니다.범위가 활성화되면 안드로이드 계측 테스트 보고서가 실패하는 이유는 무엇입니까?

java.lang.NoSuchMethodError: No static method $jacocoInit()[Z in class L... 

내가 테스트를 실행할 수 있지만 보고서를 생성 할 수 없습니다 속성을 testCoverageEnabled 제거.

표준 Jacoco 구성을 사용하고 있습니다. 단위 테스트 및 통합 테스트는 독립적으로 실행될 때 올바르게 실행됩니다.

이 문제점에 대한 온라인 참조는 모두 프로젝트 내의 특정 구성 문제 인 것 같습니다. 어떤 도움을 주셔서 감사합니다.

업데이트

apply plugin: 'jacoco' 

task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) { 

    reports { 
     xml.enabled = true 
     html.enabled = true 
    } 

    def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*'] 
    def debugTree = fileTree(dir: "${buildDir}/intermediates/classes/debug", excludes: fileFilter) 
    def mainSrc = "${project.projectDir}/src/main/java" 

    sourceDirectories = files([mainSrc]) 
    classDirectories = files([debugTree]) 
    executionData = fileTree(dir: "$buildDir", includes: [ 
      "jacoco/testDebugUnitTest.exec", 
      "outputs/code-coverage/connected/*coverage.ec" 
    ]) 
} 
+0

당신이 당신의 jacoco 구성을 보여줄 수 추가? – Artyom

+0

@Artyom, 업데이트 : – abs

+0

어떤 도구 버전을 사용하십니까? – Artyom

답변

0

내 작업 구성. 아마도 그것은 당신을 도울 수 있습니다.

apply plugin: 'jacoco' 

     def coverageSourceDirs = [ 
       '../app/src/main/java' 
     ] 

     jacoco { 
      toolVersion = "0.7.6.+" 
     } 

     task jacocoTestReport(type: JacocoReport, dependsOn: "testDebugUnitTest") { 
      group = "Reporting" 
      description = "Generate Jacoco coverage reports" 

      classDirectories = fileTree(
        dir: '../app/build/intermediates/classes', 
        excludes: ['**/R.class', 
           '**/R$*.class', 
           '**/*$ViewInjector*.*', 
           '**/BuildConfig.*', 
           '**/Manifest*.*'] 
      ) 


      additionalSourceDirs = files(coverageSourceDirs) 
      sourceDirectories = files(coverageSourceDirs) 
      executionData = files('../app/build/jacoco/testDebugUnitTest.exec') 

      reports { 
       xml.enabled = true 
       html.enabled = true 
      } 
     } 

및 buildTypes에서

이이

testCoverageEnabled = true 
+0

감사합니다. 불행하게도이 구성은 범위 보고서를 생성하지 않으며 통합 테스트를 실행하지 못합니다. 오류 메시지는'검사가 없습니다. '입니다. 이것은 대개 테스트 클래스가 테스트 주자가 기대하는 형식이 아니라는 것을 의미합니다 (예 : TestCase에서 상속하지 않거나 @Test 주석이 부족함). "나는 그것이 수행 할 수 없었던 별도의 근본적인 문제라고 가정합니다 알아 내다 – abs