Как настроить Jacoco со Spek в мультипроекте?

Я хочу измерить охват Jacoco в model проекте, одном из дочерних проектов. Однако после задания test задача jacocoTestReport пропускается.

test :

 :model:compileKotlin UP-TO-DATE :model:compileJava UP-TO-DATE :model:copyMainKotlinClasses UP-TO-DATE :model:processResources UP-TO-DATE :model:classes UP-TO-DATE :model:compileTestKotlin UP-TO-DATE :model:compileTestJava UP-TO-DATE :model:copyTestKotlinClasses UP-TO-DATE :model:processTestResources UP-TO-DATE :model:testClasses UP-TO-DATE 3 10, 2017 8:17:48 org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry loadTestEngines Discovered TestEngines with IDs: [spek] :model:junitPlatformTest Test run finished after 113 ms [ 4 containers found ] [ 0 containers skipped ] [ 4 containers started ] [ 0 containers aborted ] [ 4 containers successful ] [ 0 containers failed ] [ 1 tests found ] [ 0 tests skipped ] [ 1 tests started ] [ 0 tests aborted ] [ 1 tests successful ] [ 0 tests failed ] :model:test :model:test SKIPPED 

Затем выводится xml-файл. (Модель / строительство / тест-результаты / JUnit-платформа / TEST-spek.xml)

jacocoTestReport :

 :model:compileKotlin UP-TO-DATE :model:compileJava UP-TO-DATE :model:copyMainKotlinClasses UP-TO-DATE :model:processResources UP-TO-DATE :model:classes UP-TO-DATE :model:jacocoTestReport SKIPPED 

build.gradle:

 buildscript { ext.kotlinVersion = '1.1.0' repositories { mavenLocal() mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" classpath "org.junit.platform:junit-platform-gradle-plugin:1.0.0-M3" } } allprojects { ext { spekVersion = '1.1.0-beta3' } repositories { mavenLocal() mavenCentral() jcenter() maven { url "http://dl.bintray.com/jetbrains/spek" } maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url "https://oss.sonatype.org/content/repositories/releases/" } } } project(":model") { apply plugin: "java" apply plugin: "kotlin" apply plugin: 'org.junit.platform.gradle.plugin' apply plugin: "jacoco" jacoco { reportsDir = file("$rootProject.buildDir/reports/jacoco") } jacocoTestReport { reports { html.enabled = true xml.enabled = true csv.enabled = false } } junitPlatform { filters { engines { include 'spek' } } } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" testCompile "org.jetbrains.spek:spek-api:$spekVersion" testCompile 'org.amshove.kluent:kluent:1.14' testRuntime "org.jetbrains.spek:spek-junit-platform-engine:$spekVersion" testRuntime 'org.junit.platform:junit-platform-console:1.0.0-M3' } } 

Что делать, чтобы сделать задачу jacocoTestReport успешной?

[РЕДАКТИРОВАТЬ]

Когда я добавляю onlyIf , jacocoTestReport , но он все равно не работает.

 jacocoTestReport { onlyIf = { true } } 

Выход:

 :model:compileKotlin UP-TO-DATE :model:compileJava UP-TO-DATE :model:copyMainKotlinClasses UP-TO-DATE :model:processResources UP-TO-DATE :model:classes UP-TO-DATE :model:jacocoTestReport FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':model:jacocoTestReport'. > Unable to read execution data file model\build\jacoco\test.exec 

По умолчанию плагин JUnit Gradle отключает стандартную задачу теста Gradle, но это можно переопределить с помощью флажка enableStandardTestTask. Кажется, задача jacocoTestReport ищет это.

 junitPlatform { filters { engines { include 'spek' } } enableStandardTestTask true } 

См. http://junit.org/junit5/docs/current/user-guide/#running-tests-build

Intereting Posts
Как высмеять окончательный класс с mockito Почему Котлин не позволяет использовать lateinit с примитивными типами? Каков самый ранний уровень API Android, с которым я могу использовать Kotlin? Как вызвать методы расширения вне класса, в котором они определены? Анко. Выполнение изменений асинхронного макета Котлин говорит, что мой тип возврата ошибочен Неразрешенная ссылка: sun.misc.MessageUtils.where Сохранение объекта во внутренней памяти в android (kotlin) Почему объектам, находящимся внутри объекта сопутствующего объекта Kotlin, не удается получить доступ к «статически», когда другие члены могут? Загрузка файла и сохранение его для загрузки папки с помощью kotlin в Android java.awt.HeadlessException запуска приложения JavaFX от Kotlin REPL java.lang.NoSuchMethodException: com … Сотрудник. <init> () SugarORM + Kotlin: Неопубликованная ссылка "listAll" Как присоединиться к двум RxJava2 Obvervables по ключу? Как объявить переменную типа перечисления в Kotlin?