应该很简单,但我无法理解。
在IntelliJ中运行我的单元测试时,我找不到告诉IntelliJ-9.0应该使用JUnit4而不是JUnit3 的方法。
当测试失败时,IntelliJ控制台显示:
MyTests.testConstraints(MyTests.groovy:20)
...
com.intellij。的 junit3.JUnit3IdeaTestRunner .doRun(JUnit3IdeaTestRunner.java:108) 在 com.intellij。的 junit3.JUnit3IdeaTestRunner .startRunnerWithArgs(JUnit3IdeaTestRunner.java:42) ...
你知道如何用JUnit4替换JUnit3吗?
答案 0 :(得分:9)
您可以使用注释来注释您的测试类,以指示它将使用的运行商的junit
@RunWith(JUnit4.class) MyTestClass {}
答案 1 :(得分:8)
我找到了它!
那已经完成了!
答案 2 :(得分:2)
我试着说:
@RunWith(JUnit4.class)
在测试开始时。
IntelliJ对此抱怨,但要求'加载'JUnit4.class。
所以我删除了@RunWith(JUnit4.class)
。
但“加载”似乎已经解决了问题 - @Ignore
现在得到了尊重!
答案 3 :(得分:0)
将JUnit 4 JAR放入CLASSPATH中,看看IntelliJ是否选择了它。
JUnit插件似乎运行版本3或4.
我敢打赌,这与你编写JUnit测试的方式有关。发布一个确认。如果您使用JUnit 4样式,我敢打赌IntelliJ会正确运行它。
答案 4 :(得分:0)
'com.intellij.junit3'包属于IDEA二进制文件,而不属于junit3或junit4。因此,问题本身似乎是不正确的 - 如果IDEA代码库正确执行测试,内部使用的包名称没有区别。
答案 5 :(得分:0)
听起来真正的问题可能是您尝试使用junits 4且grails版本低于1.3。 Grails 1.2.x及更低版仅支持Junit 3测试。 Grails 1.3最终将获得junit 4支持。这在stackoverflow link text
上讨论过答案 6 :(得分:0)
我在10.5中的java应用程序遇到了同样的问题,结果是我的Project语言级别设置为5.0而不是8.0。
要更改此内容,请转到文件 - >项目结构 - >项目 - >项目语言级别
并将其更改为所需级别。不确定在哪个级别可以使用JUnit4,但将其设置为5.0将使其使用JUnit3。将其设置为8.0使其使用JUnit4