报错:
二月 07, 2022 9:59:52 下午 org.junit.platform.launcher.core.DefaultLauncher handleThrowable
警告: 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:71)
at com.intellij.rt.junit.IdeaTestRunner
R
e
p
e
a
t
e
r
.
s
t
a
r
t
R
u
n
n
e
r
W
i
t
h
A
r
g
s
(
I
d
e
a
T
e
s
t
R
u
n
n
e
r
.
j
a
v
a
:
33
)
a
t
c
o
m
.
i
n
t
e
l
l
i
j
.
r
t
.
j
u
n
i
t
.
J
U
n
i
t
S
t
a
r
t
e
r
.
p
r
e
p
a
r
e
S
t
r
e
a
m
s
A
n
d
S
t
a
r
t
(
J
U
n
i
t
S
t
a
r
t
e
r
.
j
a
v
a
:
235
)
a
t
c
o
m
.
i
n
t
e
l
l
i
j
.
r
t
.
j
u
n
i
t
.
J
U
n
i
t
S
t
a
r
t
e
r
.
m
a
i
n
(
J
U
n
i
t
S
t
a
r
t
e
r
.
j
a
v
a
:
54
)
C
a
u
s
e
d
b
y
:
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
:
o
r
g
.
j
u
n
i
t
.
p
l
a
t
f
o
r
m
.
e
n
g
i
n
e
.
s
u
p
p
o
r
t
.
d
i
s
c
o
v
e
r
y
.
S
e
l
e
c
t
o
r
R
e
s
o
l
v
e
r
a
t
j
a
v
a
.
n
e
t
.
U
R
L
C
l
a
s
s
L
o
a
d
e
r
.
f
i
n
d
C
l
a
s
s
(
U
R
L
C
l
a
s
s
L
o
a
d
e
r
.
j
a
v
a
:
381
)
a
t
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
L
o
a
d
e
r
.
l
o
a
d
C
l
a
s
s
(
C
l
a
s
s
L
o
a
d
e
r
.
j
a
v
a
:
424
)
a
t
s
u
n
.
m
i
s
c
.
L
a
u
n
c
h
e
r
Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.support.discovery.SelectorResolver at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher
Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)atcom.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)atcom.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)Causedby:java.lang.ClassNotFoundException:org.junit.platform.engine.support.discovery.SelectorResolveratjava.net.URLClassLoader.findClass(URLClassLoader.java:381)atjava.lang.ClassLoader.loadClass(ClassLoader.java:424)atsun.misc.LauncherAppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 8 more
解决方法:
1、Idea插件-Maven helper插件,找到所有冲突,选中红色的exclude掉。还是一样,没解决。
2、运行mvn dependency::tree
,仔细看一遍没看出问题。
3、运行mvn help:effective-pom
,得到最终的Maven文件结构。搜索文本 junit-jupiter-api(还有junit-jupiter-engine等),发现出现2个不同版本的(pom文件里是5.8.2,但是里面出来一个 5.3.2),换成5.3.2则没有报错了
出现原因:
不明确,之前没有加Springboot,单元测试还是正常的。又加了个springboot玩一下,再跑单元测试就突然报这个错误。