我正在通过 Gradle 使用 JUnit 5 平台。
我当前的构建文件有配置子句
junitPlatform {
platformVersion '1.0.0-M5'
logManager 'java.util.logging.LogManager'
enableStandardTestTask true
filters {
tags {
exclude 'integration-test'
}
packages {
include 'com.scherule.calendaring'
}
}
}
这很好用。但我还需要运行集成测试,这需要构建、docker 化并在后台运行应用程序。所以我应该有这样的第二个配置,然后才会启动......如何实现这个?通常我会扩展创建 IntegrationTest 任务的测试任务,但它不适合没有简单任务运行测试的 JUnit 平台......
我知道我可以这样做
task integrationTests(dependsOn: "startMyAppContainer") {
doLast {
def request = LauncherDiscoveryRequestBuilder.request()
.selectors(selectPackage("com.scherule.calendaring"))
.filters(includeClassNamePatterns(".*IntegrationTest"))
.build()
def launcher = LauncherFactory.create()
def listener = new SummaryGeneratingListener()
launcher.registerTestExecutionListeners(listener)
launcher.execute(request)
}
finalizedBy(stopMyAppContainer)
}
但有更简单的方法吗?更一致。