10

应该很简单,但我想不通。

在 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 吗?

4

7 回答 7

9

我找到了!

  1. 转到运行/调试配置
  2. 添加新配置并选择一个 JUnit
  3. 在配置选项卡中,将“-junit4”添加到测试运行参数输入字段

这样就完成了!

于 2010-05-08T17:28:07.773 回答
9

您可以使用注释来注释您的测试类,以指示 junit 它将使用的运行器

@RunWith(JUnit4.class) MyTestClass {} 
于 2010-10-25T01:21:15.227 回答
2

我试着说:

@RunWith(JUnit4.class) 

在测试开始时。IntelliJ 对此有所抱怨,但要求“加载”JUnit4.class。所以我删除了@RunWith(JUnit4.class). 但是“加载”似乎已经解决了问题 -@Ignore现在受到尊重!

于 2012-06-30T05:13:33.757 回答
0

将 JUnit 4 JAR 放入您的 CLASSPATH 并查看 IntelliJ 是否选择它。

JUnit 插件似乎运行版本 3 或 4。

我敢打赌,这与您编写 JUnit 测试的方式有关。发一个来确认。如果您使用 JUnit 4 风格,我敢打赌 IntelliJ 会正确运行它。

于 2010-05-08T14:30:22.487 回答
0

'com.intellij.junit3'包属于 IDEA 二进制文件,不属于 junit3 或 junit4。因此,问题本身在本质上似乎是不正确的 - 如果 IDEA 代码库正确执行测试,则内部使用的包名称没有区别。

于 2010-05-08T20:24:13.987 回答
0

听起来真正的问题可能是您尝试使用 grails 版本低于 1.3 的 junit 4。Grails 1.2.x 及更低版本仅支持 Junit 3 测试。Grails 1.3 最终将支持 junit 4。这在stackoverflow链接文本上进行了讨论

于 2010-05-09T20:14:23.527 回答
0

我在 10.5 中的 java 应用程序也遇到了同样的问题,结果是我的项目语言级别设置为 5.0 而不是 8.0。

要更改此设置,请转到文件->项目结构->项目->项目语言级别

并将其更改为所需的级别。不确定在哪个级别可以使用 JUnit4,但将其设置为 5.0 将使其使用 JUnit3。将其设置为 8.0 使其使用 JUnit4

于 2011-07-07T08:39:19.060 回答