JUnitException:ID为“spock”的TestEngine未能发现测试

问题描述 投票:0回答:1

我们正在尝试对我们的测试套件进行一些更新。我们希望将使用 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,但没有成功。有人对这个问题有什么建议吗?

谢谢

build.gradle junit5 spock pact junit-jupiter
1个回答
0
投票

我也遇到这个错误了。我使用了

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>
© www.soinside.com 2019 - 2024. All rights reserved.