junit-vintage-engine与junit的哪个版本兼容?

时间:2018-01-24 00:07:34

标签: junit junit5

junit-vintage引擎是否与早于4.12.x的junit版本兼容?

在我的情况下,在使用junit 4.7并在intellij idea中运行时,测试发现期间似乎存在问题。

我目前正在运行的想法2017.3.3版本,junit-jupiter'5.0.3',junit-vintage-engine'4.12.3'和junit 4.7

在模块中运行所有测试时,我看到以下异常。

  

线程“main”中的异常java.lang.NoClassDefFoundError:org / junit / experimental / categories / Category       在org.junit.vintage.engine.descriptor.VintageTestDescriptor.addCategoriesAsTags(VintageTestDescriptor.java:86)       at org.junit.vintage.engine.descriptor.VintageTestDescriptor.getTags(VintageTestDescriptor.java:77)       在org.junit.platform.launcher.TestIdentifier.from(TestIdentifier.java:60)       来自$ 0的org.junit.platform.launcher.TestPlan.lambda $(TestPlan.java:80)       在org.junit.platform.engine.TestDescriptor.accept(TestDescriptor.java:239)       at org.junit.platform.engine.TestDescriptor.lambda $ accept $ 0(TestDescriptor.java:241)       在java.lang.Iterable.forEach(Iterable.java:75)       在org.junit.platform.engine.TestDescriptor.accept(TestDescriptor.java:241)       来自$ 1的org.junit.platform.launcher.TestPlan.lambda $(TestPlan.java:81)       at java.util.LinkedHashMap $ LinkedValues.forEach(LinkedHashMap.java:608)       在org.junit.platform.launcher.TestPlan.from(TestPlan.java:81)       在org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:82)       at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:48)       在com.intellij.rt.execution.junit.IdeaTestRunner $ Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)       在com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)       在com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)   引起:java.lang.ClassNotFoundException:org.junit.experimental.categories.Category       at java.net.URLClassLoader.findClass(URLClassLoader.java:381)       at java.lang.ClassLoader.loadClass(ClassLoader.java:424)       at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:331)       at java.lang.ClassLoader.loadClass(ClassLoader.java:357)       ......还有16个

我将异常的来源缩小到VintageTestDescriptor.java中的几行(盯着第86行)

    private void addCategoriesAsTags(Set<TestTag> tags) {
    Category annotation = (Category)this.description.getAnnotation(Category.class);

类别在junit 4.12的实验包中,似乎在junit 4.7中缺失。我无法找到老式引擎兼容的junit版本的文档。

1 个答案:

答案 0 :(得分:3)

junit-vintage-engine与JUnit 4.12兼容。

有没有理由不更新到4.12?