如何在使用JUnit5的同时使用Gradle Kotlin DSL运行kotlintest测试?
我尝试了什么?
如何使用Gradle运行kotlintest测试?本质上是这个问题的旧版本,但由于使用了不同的技术:JUnit4和Gradle而不是Gradle Kotlin DSL已经过时。我能找到的所有其他问题要么是针对JUnit4,要么是针对没有Kotlintest的JUnit5。
import io.kotlintest.matchers.exactly
import io.kotlintest.matchers.shouldBe
import io.kotlintest.specs.FunSpec
class KotlinTest: FunSpec() {
init {
testCalculate()
}
/** This failing test will not fail the Gradle check. */
fun testCalculate() = test("one plus one is two") {
(1+1).toDouble() shouldBe exactly(42.0)
}
}
import org.gradle.api.plugins.ExtensionAware
import org.junit.platform.gradle.plugin.FiltersExtension
import org.junit.platform.gradle.plugin.EnginesExtension
import org.junit.platform.gradle.plugin.JUnitPlatformExtension
group = "mypackage"
version = "0.0"
// JUnit 5
buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath("org.junit.platform:junit-platform-gradle-plugin:1.1.0")
}
}
apply {
plugin("org.junit.platform.gradle.plugin")
}
// Kotlin configuration.
plugins {
application
kotlin("jvm") version "1.2.30"
java // Required by at least JUnit.
}
application {
mainClassName = "mypackage.HelloWorld"
}
dependencies {
compile(kotlin("stdlib"))
// To "prevent strange errors".
compile(kotlin("reflect"))
// Kotlin reflection.
compile(kotlin("test"))
compile(kotlin("test-junit"))
// JUnit 5
testImplementation("org.junit.jupiter:junit-jupiter-api:5.1.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.1.0")
testRuntime("org.junit.platform:junit-platform-console:1.1.0")
// Kotlintests are not run anyway when using JUnit 5 as well.
testCompile("io.kotlintest:kotlintest:2.0.7")
}
repositories {
jcenter()
}
PS在GitHub完成项目。
在Kotlin Gradle插件的最新版本中,添加这一点就足够了:
dependencies {
testImplementation(kotlin("test-junit5"))
testRuntimeOnly("org.junit.jupiter", "junit-jupiter-engine", "5.5.2")
}
tasks {
test {
useJUnitPlatform()
}
}
这是假设您想坚持kotlin.test
的接口。例如,一个小测试可以如下所示:
import kotlin.test.Test
import kotlin.test.assertEquals
class SomeTest {
@Test
fun testBar() {
assertEquals(5, 6)
}
}
如果要从IDEA运行测试,则需要添加一些附加的依赖项:
dependencies {
// ...
testCompileOnly("org.junit.jupiter", "junit-jupiter-api", "5.5.2")
testCompileOnly("org.junit.jupiter", "junit-jupiter-params", "5.5.2")
}
kotlintest测试从Intellij启动时运行得非常好,但当我尝试使用gradle test task命令运行它们时,只会找到并运行我的常规JUnit测试。 kotlintest代码: build.gradle:
我正在尝试使用Gradle从Kotlintest获取分层测试报告。我看过一些截图,但是我运气不好。对于任何类型的测试(FunSpec、WordSpec、BehaviorSpec等),我总是只看到类名,然后是“叶”测试。 Gradle 5.6.2 Kotlintest 3.4.2 JUnit平台1.5.2 样本测试类 建筑格拉德尔 IntelliJ结果 格雷德尔报告 我需要做什么才能在报告中显示级别
问题内容: 目前,我有以下 build.gradle 文件: 这 的build.gradle 文件是我的仓库 在这里 。我所有的主文件都在 src / model /中 ,它们各自的测试在 test / model中 。 如何正确添加JUnit 4 依赖项 ,然后在 测试/模型 文件夹中运行那些测试? 问题答案: 如何正确添加junit 4依赖关系? 假设您要针对标准Maven(或等效版本)存储库
当前我有以下build.gradle文件: 此build.gradle文件用于我的存储库。我的所有主文件都在src/model/中,它们各自的测试都在test/model中。
问题内容: 我在运行Ubuntu的本地计算机上设置Jenkins,将其指向我的jdk,然后进行maven,创建了一个作业来运行我的Selenium测试,并为它提供了项目中pom.xml的路径,但是当我尝试运行该作业时,它立即失败。控制台输出显示 在工作区中构建/ var / lib / jenkins / workspace / new job [new job] $ / usr / share