【问题标题】:Disable import of JUnit 3 classes禁用 JUnit 3 类的导入
【发布时间】:2015-05-28 11:39:56
【问题描述】:

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

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

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

很奇怪,如果我 Ctrl+Click 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。另外,我的问题不在于运行测试,而在于实施测试。

【问题讨论】:

    标签: eclipse configuration junit4 junit3


    【解决方案1】:

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

    【讨论】:

    • 谢谢!这使得测试编码更容易。
    【解决方案2】:

    实际上,JUnit 4 依赖于一些最初在 JUnit 3 中开发或驻留在包junit.* 中的类。其中一类是ComparisonFailure。如果您查看最新的 JUnit 4.12,您会发现这些包仍然存在。

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

    【讨论】:

    【解决方案3】:

    您的插件有哪些依赖项? Junit 3.X 还是 4.X ?

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

    【讨论】:

    • 哪个插件?我正在引用使用 JUnit 3 的 dom4j-1.6.1.jar。并且我已经安装了使用 JUnit 3 的 findbugs-3.0.0.jar(不在构建路径中)。这真的是问题吗,一个正在引用的库JUnit?
    猜你喜欢
    • 2018-01-11
    • 2020-12-22
    • 2022-12-16
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 2011-04-19
    • 2014-06-25
    相关资源
    最近更新 更多