gpt4 book ai didi

gradle - 带有 gradle 和 kotlin 的 Jacoco 没有创建 jacoco.exec 文件

转载 作者:行者123 更新时间:2023-12-01 16:02:16 28 4
gpt4 key购买 nike

我已经设置了一个基本的 kotlin 项目(空类,一个测试文件)并尝试使用 gradle 插件设置 jacoco 和 gradle:https://docs.gradle.org/current/userguide/jacoco_plugin.html

当我运行测试时,一个测试通过了,但是没有创建 jacoco.exec 文件。我错过了什么?我假设这些类永远不会被检测到,但似乎找不到太多关于如何为 jacoco 设置 build.gradle 的信息。或者 jacoco 不能检测从 kotlin 创建的类文件吗?

group 'com.ronnev.filewatcher'
version '0.1'

buildscript {
ext.kotlin_version = '1.1.61'

repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.2'
}
}

apply plugin: 'kotlin'
apply plugin: 'org.junit.platform.gradle.plugin'
apply plugin: 'jacoco'

repositories {
mavenCentral()
jcenter()
}

dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"

testCompile 'org.junit.jupiter:junit-jupiter-api:5.0.2'

testRuntime 'org.junit.jupiter:junit-jupiter-engine:5.0.2'
}

jacoco {
toolVersion = "0.7.9"
reportsDir = file("$buildDir/jacoco/")
}

jacocoTestReport {
classDirectories = files("${buildDir}/classes")

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

test {
jacoco {
append = false
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
}
}

当我运行 gradle test 时,我希望创建一个 build/jacoco/jacoco.exec 文件,但事实并非如此。

vextorspace@vPrecise:~/projects/filewatcher $ gradle clean test
:clean
:compileKotlin
w: /home/vextorspace/projects/filewatcher/src/main/kotlin/com/ronnev/filewatcher/files/DependentFinder.kt: (6, 28): Parameter 'className' is never used
:compileJava UP-TO-DATE
:copyMainKotlinClasses
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestKotlin
:compileTestJava UP-TO-DATE
:copyTestKotlinClasses
:processTestResources
:testClasses
:junitPlatformTest

Test run finished after 71 ms
[ 2 containers found ]
[ 0 containers skipped ]
[ 2 containers started ]
[ 0 containers aborted ]
[ 2 containers successful ]
[ 0 containers failed ]
[ 1 tests found ]
[ 0 tests skipped ]
[ 1 tests started ]
[ 0 tests aborted ]
[ 1 tests successful ]
[ 0 tests failed ]

:test SKIPPED

BUILD SUCCESSFUL

当我查看构建目录时,没有创建 jacoco 文件夹:

vextorspace@vPrecise:~/projects/filewatcher $ ls build
classes kotlin kotlin-build kotlin-classes resources test-results

如有任何帮助或提示,我们将不胜感激!

谢谢!

最佳答案

Jacoco 还不能将自己附加到 JUint5 使用的新任务名称(例如 junitPlatformTest)。

您需要“帮助”Gradle 使用 task.dependsOn(otherTask) 方法调用在两个任务之间创建连接。

在您的情况下,将此添加到您的 build.gradle 可能会起作用:

jacoco {
// This is the latest version at the time of writing this. Change as you need.
toolVersion = '0.7.9'
applyTo junitPlatformTest
}

test.dependsOn junitPlatformTest

关于gradle - 带有 gradle 和 kotlin 的 Jacoco 没有创建 jacoco.exec 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47500986/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com