禁用JUnit 3类的导入

时间:2015-05-28 11:39:56

标签: eclipse configuration junit4 junit3

我只想开发JUnit 4测试。在编写单元测试时,Eclipse经常从junit.framework导入类,即JUnit 3。

这会导致各种问题,例如当期待一个异常时,如果它在错误的包中,它就不会捕获它:

import static org.junit.Assert.*;
import junit.framework.ComparisonFailure;
[...]
try 
{
     assertEquals(0, 1);
}
catch(ComparisonFailure cfe)
{
}

奇怪的是,如果我 Ctrl + 点击ComparisonFailure上的,就说

  

未找到来源

     

此类的JAR属于容器'JUnit 4'[...]

也许有用的环境信息:

  • 我的构建路径中没有JUnit 3.
  • Eclipse Luna 4.4.1

如何阻止Eclipse导入JUnit 3类?

我已阅读Why is Eclipse using JUnit 3 when I have junit-4.3.1.jar in my build path?,但它已经相当陈旧,可能不再适用于Luna了。另外,我的问题不在运行测试中,而是在实现测试。

3 个答案:

答案 0 :(得分:2)

实际上,JUnit 4依赖于最初在JUnit 3中开发或驻留在包junit.*中的一些类。其中一个类是ComparisonFailure。如果你看一下最新的JUnit 4.12,你会发现这些软件包仍在那里。

但是,源jar包含这些类的java文件。也许你的库包含JUnit(你使用Eclipse JUnit库吗?)缺少源文件吗?你的依赖(junit.jar)来自哪里?

答案 1 :(得分:2)

Eclipse用户的另一个解决方法是以下解决方案: Windows - >优惠 - > Java - >外观 - >输入过滤器 并将junit.framework。*添加到排除列表中。

答案 2 :(得分:0)

你的插件有哪些依赖项? Junit 3.X或4.X?

您可以在工作区中搜索junit 3中的任何引用并更改/删除它们。

相关问题