我正在使用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并在后台运行。所以我需要第二个配置,仅在这种情况下才会启动...如何实现呢?通常我会扩展Test任务创建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)
}
但是有没有更简单、更一致的方法呢?