java.lang.Exception:没有找到匹配使用Intellij IDEA的方法的测试

Art*_*ich 28 java junit compilation intellij-idea maven

我正在经历Intellij IDEA 2016.3的奇怪行为.在运行测试foo时得到方法的类和方法的JUnit java.lang.Exception: No tests found matching Method foo测试.我mvn test成功后,然后在执行mvn命令后立即运行单元测试,它突然变为绿色.似乎IDEA不会自动编译.我怎样才能解决这个问题?

PS升级至v.2016.3后,未更改任何设置

Evg*_*dev 21

与Gradle(4.5+)+新的Build Cache功能相同的问题

有时它无法找到新的测试方法并抛出异常(就像你在主题中提到的那样)

解决方法:清洁.gradle,buildout目录,然后再试一次;)

  • 那是我的正确答案,我一直在使用IntelliJ,因此它与日食无关。删除所有内容并重建作品!解决了我的1小时浪费问题...谢谢! (2认同)

小智 18

如果你正在使用像JunitRobolectric这样的理论测试框架,请确保运行包含所需测试的类,而不是测试本身.由于这些框架使用测试方法作为实例方法而不是静态方法,因此任何寻找正常public static测试的测试框架都找不到任何东西.


Art*_*ich 8

好吧,在使用每个单元测试的运行配置"玩"一点之后,我注意到每个Run Config BuildBefore Launch选项中都有一个目标预设(见下图):在此输入图像描述

更改BuildBuild Project测试后运行正常.


cel*_*epo 6

如果您最初运行的测试名为“ foo”,然后将其重命名为“ fooBar”,则随后必须使用新的“运行配置”运行“ fooBar”

如果您对“ foo”使用相同的原始“运行配置”来运行“ fooBar”,它仍会查找名为“ foo”的测试,但由于将其重命名为“ fooBar”,因此找不到(因此是异常)。新的运行配置将正确查找“ fooBar”测试。

我在不知不觉中犯了这个错误,因为我重命名了一个测试,但是随后单击了IntelliJ中的绿色运行按钮:这样做会运行最后一个运行配置,在这种情况下,该配置具有旧的“ foo”名称。


use*_*571 6

删除Intellij的out目录对我来说解决了这个问题。


小智 6

确保您的@test方法和测试类都是public.


Phi*_*hil 5

除了这里的其他答案:当您@Test在测试方法声明之前忘记时,也会发生错误。IntelliJ(2018.1)仍会向您显示绿色的“播放按钮”以执行测试,但是Test-Class中的公共方法将不是实际的测试。