2010-06-08 124 views
4

我在Eclipse 3.5中遇到了JUnit 4测试中的一个奇怪问题,我无法解决 - 感激地收到了任何提示!JUnit无法在Eclipse中找到测试

最初:我有一个测试套件可以正常工作,100多个测试全部配置了JUnit 4注释。我通常会通过右键单击我的源文件夹并选择“作为JUnit测试运行”来运行这些操作。一切都很完美。

现在:当我尝试运行测试消息时,我所得到的只是一个错误“未找到与测试运行器'JUnit 4'相关的测试”。

任何想法发生了什么?我根本无法弄清楚什么可以改变,使这个失败。

我的猜测是这是基于构建路径或类路径的一些配置问题?

+0

附加信息:我正在使用以下插件:EGit,Subversion客户端(Subclipse),逆时针Clojure,ASM框架,Findbugs,度量插件 – mikera 2010-06-08 15:22:07

+0

附加信息:似乎不是JUnit的问题因为测试在其他项目中依然运行良好。真的似乎是项目配置相关,但我不能确定什么依赖项可能会丢失.... – mikera 2010-06-08 15:25:42

回答

0

我从来没有发现这个问题的真正原因,但升级到Eclipse 3.6终于解决了它。

+0

我在Juno(4.2.2)中再次遇到这个问题,并带有m2e。我发现我需要重新启动才能清除它。 – 2013-06-30 22:37:43

1

我的第一对夫妇的想法(没有看到一些例子测试代码):

No tests found with test runner 'JUnit 4'

提出了很多建议国家重新启动Eclipse和清洁项目。根据我的经验,有时eclipse会陷入一种模式,它认为我正在尝试在JUnit 3和4之间进行混合运行,所以有时命名'@Test'方法的命名为'test ...'作品。

另外,如果您有任何其他插件,即m2eclipse或最近添加的其他插件,这也可能会影响您的情况。如果您最近添加的任何内容使用其自己的JUnit版本,则可能会导致问题。

一些样本测试代码,可能有助于进一步调查。

+0

谢谢 - 我没有检查线程,但似乎没有任何提示工作(重新启动日食或干净的项目没有工作,我没有使用Maven)。 – mikera 2010-06-08 15:20:32

+0

也大多数测试已经被命名为“@Test public void testXXX()”,所以可能不是3/4混淆问题。 – mikera 2010-06-08 15:23:38

+0

嗯...试着摆脱'测试'关键字,并单独运行一个测试用例,这是否工作? – 2010-06-08 15:34:14

2

我以不同的方式解决了这样的问题。这些解决方案都不适合我。我的项目是一个Google Web App项目,一个Maven项目和一个JREbel项目......所以,其中的任何一个都可能与我的设置有关。

我还发现我无法使用运行方式 - > Java应用程序使用main()方法运行任何类。这导致了一个ClassNotFoundException。

我的解决方案是创建一个新的Web应用程序项目并复制所有源并重新设置它。现在Java应用程序和JUnit测试都按预期工作

4

也有这个问题,做一个“项目 - >干净”,然后试图像往常一样运行单元测试已经做到了!

1

这个问题最有趣的答案。

变化测试名称开始与 “测试”

例如,

@Test 公共无效checkForTwoStringTest(){....}

更改为

@测试 public void testCheckForTwoString

这确实工作就像一个奇迹....:-)