我们正在尝试对我们的测试套件进行一些更新。我们希望将使用 PACT 的合约测试转换为使用 jUnit5。
当我们更新 PACT 消费者/提供者等软件包并尝试运行代码时,我们会收到此异常:
org.gradle.api.internal.tasks.testing.TestSuiteExecutionException: Could not complete execution for Gradle Test Executor 8.
...
Caused by: org.junit.platform.commons.JUnitException: TestEngine with ID 'spock' failed to discover tests
当前build.gradle文件包含
plugins {
id 'java'
id 'groovy'
id "au.com.dius.pact" version '4.2.13'
}
dependencies {
testImplementation 'org.codehaus.groovy:groovy:3.0.12'
testImplementation group: 'au.com.dius.pact.consumer', name: 'junit5', version: '4.3.4'
testImplementation group: 'au.com.dius.pact.provider', name: 'junit5', version: '4.3.4'
testImplementation 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.1'
testImplementation 'com.motorolasolutions.pnf:utils:1.0.+:test-lib'
testImplementation "org.spockframework:spock-core:2.1-M2-groovy-3.0"
testImplementation "org.spockframework:spock-spring:2.1-M2-groovy-3.0"
testImplementation "org.spockframework:spock-core:2.1-M2-groovy-3.0"
testImplementation('com.athaydes:spock-reports:2.1.1-groovy-3.0') {
transitive = false
}
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter', version: '5.9.1'
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.9.1'
}
我们尝试过弄乱“groovy”和“java”的插件 ID,但没有成功。有人对这个问题有什么建议吗?
谢谢
我也遇到这个错误了。我使用了
spock-reports
但没有添加必要的 slf4j-api
依赖项。添加后...
testImplementation 'org.slf4j:slf4j-api:1.7.36'
...错误消失并且测试成功运行。
对于内行人士:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
<scope>test</scope>
</dependency>