我得堆栈:
我们想开始在Spock测试框架中编写测试。我跟着这个howto,但没有成功。当我尝试运行所有测试时,我的spock测试没有运行。
我能运行一个测试。我可以“右击”测试并运行它。但是如果我尝试运行整个groovy包(或者Java包下的某个包),它将不会运行那些groovy测试。“它将不运行”表示以下错误:
Jul 24, 2019 8:33:47 AM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-jupiter' failed to discover tests
java.lang.NoClassDefFoundError: org/junit/platform/engine/support/discovery/SelectorResolver
at org.junit.jupiter.engine.JupiterTestEngine.discover(JupiterTestEngine.java:69)
at org.junit.platform.launcher.core.DefaultLauncher.discoverEngineRoot(DefaultLauncher.java:168)
at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:155)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.support.discovery.SelectorResolver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 8 more
Jul 24, 2019 8:33:47 AM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-vintage' failed to discover tests
java.lang.NoClassDefFoundError: org/junit/platform/engine/support/discovery/SelectorResolver
at org.junit.vintage.engine.VintageTestEngine.discover(VintageTestEngine.java:62)
at org.junit.platform.launcher.core.DefaultLauncher.discoverEngineRoot(DefaultLauncher.java:168)
at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:155)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.support.discovery.SelectorResolver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 8 more
class TelephoneTest extends Specification {
def "Should copy correct values from telephone buidler."() {
given:
TelephoneInfoType telephone = telephone().build().toOurType()
expect:
telephone.getCountry() == COUNTRY
telephone.getNumber() == NUMBER
telephone.getType() == TYPE
telephone.getLocation() == LOCATION
}
}
src/main/java
src/test/groovy
src/test/java
我希望看到测试正在运行,这意味着:我可以右键单击文件夹src/test/groovy
,选择run tests。
这是我在idea中看到的:
因此,您可能希望获得更具体的内容,并在GitHub上共享一个MCVE,即一个包含几个虚拟类和测试(包括Spock和JUnit)的完整Maven项目,以供我检查。
更新:在检查并修复了你在我的叉子中的MCVE后,我可以解释出了什么问题:
<junit-jupiter.version>5.3.2</junit-jupiter.version>
<junit.version>4.12</junit.version>
<properties>
<junit-jupiter.version>5.5.1</junit-jupiter.version>
</properties>
现在运行mvn clean test
并看到JUnit和Spock测试都正在编译和运行。从IntelliJ IDEA运行测试,就像我上面的屏幕截图一样,现在也可以工作了。
我还通过GitHub向你发送了拉取请求。
只启动jUnit测试和集成测试。从不执行。 下面是Maven输出的一部分: 我在StackOverflow上发现了几乎相同或相似的问题,但在我的项目中没有一个响应起作用。 null
我有简单的测试 为什么maven和intellij不能执行Junit5测试?这方面的工作是什么?surefire版本应该已经支持JUnit5测试。
我想在同一个项目中运行spock和junit5测试。因此,我制作了一个示例项目,在src/main下没有任何内容,但在src/test/java/a/package/下有两个测试。其中一个测试是junit5,另一个是spock测试。 但是在发出之后,只执行JUnit测试,而不执行spock测试。它们通过“运行所有测试”在Intellij中很好地一起运行,所以显然有一些我找不到的配置问题。 下面是我
为什么在STS中运行单元测试是有效的,而在bash中运行mvn测试会产生错误。Groovy库位于类路径中。我也很好奇mvn测试与spock测试有何不同。mvn测试不能拿起斯波克测试吗? pom.xml
有一种方法可以运行junit测试,只需在“mvn clean install”命令中添加参数?没有使用@Profile注释测试。
完成了818个集成测试,0在104001ms运行1个spock测试时失败...失败:CreditServiceSpec groovy.lang.groovyRuntimeException:未能调用构造函数:public org.codehaus.groovy.grails.test.support.grailstestautoWirer(org.springframework.context.a