问题标签 [junit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4553 浏览

java - 第一次失败测试后如何使junit测试停止

有没有办法让运行 junit 测试在测试失败后停止?

0 投票
8 回答
1209 浏览

java - 用于维护 Java 中的对象方法合同的自动单元测试?

在开发 Java 应用程序时,我经常重写 Object 方法(通常是 equals 和 hashCode)。我想要一些方法来系统地检查我是否遵守我的每个类的 Object 方法的合同。例如,我想要断言对于相等的对象,哈希码也相等的测试。我正在使用 JUnit 测试框架,所以最好我想要一些 JUnit 解决方案,我可以在其中自动生成这些测试,或者一些可以以某种方式访问​​我的所有类并确保合同得到遵守的测试用例。

我正在使用 JDK6 和 JUnit 4.4。

0 投票
4 回答
17863 浏览

java - JUnit 和 junit.framework.TestSuite - 没有可运行的方法

我做了一些单元测试(在测试类中)。我读过的教程说我应该为单元测试制作一个TestSuite。

奇怪的是,当我直接运行单元测试(选择测试类 - 作为 jUnit 测试运行)时,一切正常,尽管当我用测试套件尝试同样的事情时,总是有一个例外:java.lang。例外:没有可运行的方法。

这是测试套件的代码:

任何想法为什么这不起作用?

0 投票
5 回答
9347 浏览

java - JUnit 3.x 中的参数化测试用例类

我有一个 JUnit 3.x TestCase,我希望能够对其进行参数化。我想参数化整个TestCase(包括夹具)。但是,该TestSuite.addTestSuite()方法不允许传递一个TestCase对象,只传递一个类:

我希望能够将参数(字符串)传递给测试运行时创建的 MyTestCase 实例。就像现在一样,我必须为每个参数值设置一个单独的类。

我尝试将它传递给一个任意子类:

但是,这会因断言而失败:

有任何想法吗?我是否以错误的方式解决问题?

0 投票
3 回答
315 浏览

java - 安全发布的单元测试

您将如何对 Java 中的安全发布保证进行单元测试?

具体来说:

我有一个 Cache 接口,它有一个方法 getOrLoad(K key, ObjectLoader loader)。问题是,如果缓存找不到给定键的对象,那么它必须从 ObjectLoader 实例加载它。但是,缓存需要保证从加载器加载对象并将其放入缓存中的行为构成安全发布。

我现在正在为此 Cache 接口编写一个通用的 junit 测试,我想知道如何测试 Cache 实现是否遵守这个安全发布保证。

有任何想法吗?实际代码位于代码存储库的 test-systest 模块部分,以防您想要查看真实文件。

0 投票
13 回答
74622 浏览

java - 如何在 Windows 中设置较长的 Java 类路径?

我正在尝试在 Windows XP 命令行上手动运行特定的 JUnit 测试,该命令行在类路径中具有异常多的元素。我尝试了几种变体,例如:

(其他变体是将类路径全部设置在一行上,通过 -classpath 将类路径设置为 java 的参数)。它总是归结为控制台抛出此错误:

这是一个 JUnit 测试,测试一个相当大的现有遗留项目,所以没有关于将我的目录结构重新排列为更合理的建议,这些类型的解决方案现在已经出来了。我只是想对这个项目进行快速测试并在命令行上运行它,而控制台让我望而却步。帮助!

0 投票
5 回答
116863 浏览

oracle - 什么会导致间歇性 ORA-12519(TNS:未找到合适的处理程序)错误

我们在 Oracle 10 数据库(使用 Hudson 作为持续集成服务器)前针对 Weblogic 9 运行 Junit 4 测试套件,有时我们会在脚本拆卸期间遇到 ORA-12519 崩溃。但是,错误是非常间歇性的:

  • 它通常发生在同一个测试类
  • 对于相同的测试用例并不总是发生(有时它们通过)
  • 对于相同数量的测试用例(3-9 个)不会发生这种情况
  • 有时它根本没有发生,一切都过去了

虽然我不能保证这不会在本地发生(当然,当针对同一个数据库运行时),但我已经多次运行同一个类套件,没有任何问题。

有任何想法吗?

0 投票
2 回答
2826 浏览

java - 尝试使用 JMockit Coverage 时出现 NoClassDefFoundError

我正在尝试使用 JMockit 的代码覆盖能力。使用 JVM 参数

我能够运行我的测试(jmockit.jar 和 coverage.jar 在类路径上),不幸的是我的日志文件说:

...并且没有生成覆盖文件。有没有人让 JMockit Coverage 工作?如果是这样,关于是什么导致此错误的任何想法?谢谢...

回答我需要为引导条目添加覆盖范围,而不仅仅是用户条目(在 Eclipse 运行配置中)

实际答案实际答案是我使用 JUnit 3 运行测试,但覆盖范围需要 JUnit 4。这解决了问题,我不必添加任何引导条目。

0 投票
2 回答
7155 浏览

java - 如何添加不从 TestCase 扩展到 TestSuite 的 JUnit 4 测试?

在 JUnit 3 中,我简单地调用了

但是,如果 MyTest 是不扩展 TestCase 的 JUnit 4 测试,则此方法不起作用。我应该怎么做才能创建一套测试?

0 投票
2 回答
1888 浏览

eclipse - 在 Eclipse 中运行测试时,有没有办法使用自定义 JUnit Test Runner?

我想使用JMockit的增量测试运行程序,而不是 Eclipse 中的标准 JUnit 测试运行程序。有没有办法做到这一点?

编辑收到我给 JMockit 开发人员的电子邮件的以下答复:

您需要使用命令行启动 JVM,例如“-javaagent:jmockit.jar=incjunit4”,其中“incjunit4”指定加载用于增量 JUnit 测试的外部工具。还必须使用覆盖工具,因为它为增量测试工具提供了必要的运行时信息。事实上,没有关于这方面的文档,主要是因为这个功能还没有完全开发出来。

不幸的是,这仍然对我不起作用。有没有人让增量测试运行器工作?