Junit 5 测试套件
Junit 5 Test Suites
我正在尝试使用 junit-platform-suite-api 1.8.2 将项目从 JUnit 4 迁移到 JUnit 5.8.2。我们曾经在测试套件中组织我们的测试 classes。但是,如果我将 @Suite 注释与 @SelectClasses 一起使用,则测试运行器根本找不到测试方法。当运行一个特定的测试class直接一切正常。这发生在 eclipse 和 gradle 构建中。
import org.junit.platform.suite.api.SelectClasses;
import org.junit.platform.suite.api.Suite;
@Suite
@SelectClasses({
TestA.class
})
public class ImportantTestSuite {
}
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Assertions;
public class TestA {
@Test
public void reallyImportantTest() {
assertEquals(2, 1 + 1)
}
}
build.gradle 看起来像这样
plugins {
id 'application'
}
dependencies {
testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
testImplementation 'org.junit.platform:junit-platform-suite-api:1.8.2'
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junitVersion}"
}
test {
useJUnitPlatform()
minHeapSize = '1024m'
maxHeapSize = '1024m'
include '**/*ImportantTestSuite*'
ignoreFailures = true
testLogging {
exceptionFormat 'full'
events 'passed', 'skipped', 'failed'
}
}
知道如何在 class 基础上组织套件吗?
编辑:
我已经阅读了这个答案。据我所知,我正在使用带有@Suite 和@SelectClasses 的apporach,而不是runner。
junit-platform-suite-engine 丢失了...
参见:https://junit.org/junit5/docs/current/user-guide/index.html#junit-platform-suite-engine
dependencies {
testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junitVersion}"
testImplementation 'org.junit.platform:junit-platform-suite-api:1.8.2'
**testRuntimeOnly 'org.junit.platform:junit-platform-suite-engine:1.8.2'**
}
我正在尝试使用 junit-platform-suite-api 1.8.2 将项目从 JUnit 4 迁移到 JUnit 5.8.2。我们曾经在测试套件中组织我们的测试 classes。但是,如果我将 @Suite 注释与 @SelectClasses 一起使用,则测试运行器根本找不到测试方法。当运行一个特定的测试class直接一切正常。这发生在 eclipse 和 gradle 构建中。
import org.junit.platform.suite.api.SelectClasses;
import org.junit.platform.suite.api.Suite;
@Suite
@SelectClasses({
TestA.class
})
public class ImportantTestSuite {
}
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Assertions;
public class TestA {
@Test
public void reallyImportantTest() {
assertEquals(2, 1 + 1)
}
}
build.gradle 看起来像这样
plugins {
id 'application'
}
dependencies {
testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
testImplementation 'org.junit.platform:junit-platform-suite-api:1.8.2'
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junitVersion}"
}
test {
useJUnitPlatform()
minHeapSize = '1024m'
maxHeapSize = '1024m'
include '**/*ImportantTestSuite*'
ignoreFailures = true
testLogging {
exceptionFormat 'full'
events 'passed', 'skipped', 'failed'
}
}
知道如何在 class 基础上组织套件吗?
编辑:
我已经阅读了这个答案。据我所知,我正在使用带有@Suite 和@SelectClasses 的apporach,而不是runner。
junit-platform-suite-engine 丢失了...
参见:https://junit.org/junit5/docs/current/user-guide/index.html#junit-platform-suite-engine
dependencies {
testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junitVersion}"
testImplementation 'org.junit.platform:junit-platform-suite-api:1.8.2'
**testRuntimeOnly 'org.junit.platform:junit-platform-suite-engine:1.8.2'**
}