2017-01-03 6 views
2

У меня есть многоязычный проект с испытаниями, реализованными с использованием Java (JUnit) и Groovy (Spock).Gradle sonarqube не распознает groovy тесты

plugins { 
    id "org.sonarqube" version "2.2.1" 
} 

apply plugin: 'idea' 
apply plugin: 'java' 
apply plugin: 'groovy' 
apply plugin: 'jacoco' 

ext { 
    spockVersion = '1.1-groovy-2.4-rc-3' 
    groovyVersion = '2.4.7' 
} 

group = "at.softwarecraftsmen.poc" 
version = "1.0.0-SNAPSHOT" 

repositories { 
    mavenCentral() 
} 

dependencies { 
    testCompile "junit:junit-dep:4.11" 

    testCompile "org.codehaus.groovy:groovy-all:$groovyVersion" 
    testCompile "org.spockframework:spock-core:$spockVersion" 
} 

jacoco { 
    toolVersion = "0.7.8+" 
} 

sonarqube { 
    properties { 
     //property 'sonar.tests', ["src/test/groovy", "src/test/java"] 
     properties['sonar.tests'] += ["src/test/groovy"] 
    } 
} 

При выполнении задачи sonarqube, она проходит успешно, но сообщает Resource not found: at.softwarecraftsmen.poc.sonar.domain.DomainTesteeSpec. Это тест Spock с использованием Groovy.

Вот полный выход журнала с производства Gradle:

$ ./gradlew clean jacoco sonarqube 
:clean 
:compileJava 
:compileGroovy UP-TO-DATE 
:processResources UP-TO-DATE 
:classes 
:compileTestJava 
:compileTestGroovy 
:processTestResources UP-TO-DATE 
:testClasses 
:test 
objc[4573]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_71.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_71.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. 
:jacocoTestReport 
:sonarqube 
Resource not found: at.softwarecraftsmen.poc.sonar.domain.DomainTesteeSpec 
CodeNarc completed: (p1=0; p2=0; p3=0) 941ms 
Resource not found: at.softwarecraftsmen.poc.sonar.domain.DomainTesteeUnitTest 
File not found: at/softwarecraftsmen/poc/sonar/domain/DomainTestee.java 
Coverage information was not collected. Perhaps you forget to include debug information into compiled classes? 
File not found: at/softwarecraftsmen/poc/sonar/domain/DomainTestee.java 
Coverage information was not collected. Perhaps you forget to include debug information into compiled classes? 
BUILD SUCCESSFUL 

Добавление properties['sonar.tests'] += ["src/test/groovy"] не устраняет проблему, только тесты из src/test/java сообщается правильно.

------------------------------------------------------------ 
Gradle 3.3 
------------------------------------------------------------ 

Build time: 2017-01-03 15:31:04 UTC 
Revision:  075893a3d0798c0c1f322899b41ceca82e4e134b 

Groovy:  2.4.7 
Ant:   Apache Ant(TM) version 1.9.6 compiled on June 29 2015 
JVM:   1.8.0_71 (Oracle Corporation 25.71-b15) 
OS:   Mac OS X 10.11.6 x86_64 
+0

Связанный: http://stackoverflow.com/questions/41886878/integrate-spocks-test-with-sonar – kazanaki

ответ

0

Убедитесь, что вы установили Groovy плагин в Sonar, как описано здесь:

Integrate Spock's test with Sonar

Вы должны права администратора на вашем экземпляре эхолота, чтобы сделать это.

+0

У меня такая же проблема. После добавления плагина, как указано в связанном вопросе, я вижу тесты, появляющиеся в SonarQube. Однако данные покрытия не учитывают тесты Spock. –