草庐IT

java - JUnit 规则临时文件夹

我正在使用JUnit4.7中的@Rule注释创建一个TemporaryFolder。我尝试在我的@Before(设置)方法中使用tempFolder.newFolder("someFolder")创建一个新文件夹,它是临时文件夹的子文件夹测试。好像临时文件夹在安装方法运行后被初始化,这意味着我不能在安装方法中使用临时文件夹。这是正确的(且可预测的)行为吗? 最佳答案 这是Junit4.7中的问题。如果您升级较新的Junit(例如4.8.1),则在您输入@Before方法时,所有@Rule都将运行:s。一个相关的错误报告是这样的:ht

java - 缺少 "Run as JUnit Test"

我通过右键单击Java类并选择新建JUnit测试用例,在Eclipse中创建了一个JUnit4测试。当我右键单击测试类时,我得到“在服务器上运行”,但不是“作为JUnit测试运行”。我正在使用Eclipse3.6.1。 最佳答案 在我的例子中,Eclipse一定已经达到损坏状态。重新启动Eclipse解决了问题。 关于java-缺少"RunasJUnitTest",我们在StackOverflow上找到一个类似的问题: https://stackoverflo

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

在JUnit3中我只是调用suite.addTestSuite(MyTest.class)但是,如果MyTest是一个不扩展TestCase的JUnit4测试,这将不起作用。我应该怎么做才能创建一套测试? 最佳答案 对于那些需要与新的v4风格共存的大量3.8风格套件/测试的人,您可以执行以下操作:importorg.junit.runner.RunWith;importorg.junit.runners.Suite;@RunWith(Suite.class)@Suite.SuiteClasses({//AddaJUnit3suite

java - 来自 JUnit 的 getResourceAsStream

我正在为需要在初始化期间加载配置文件的项目创建JUnit测试用例。此配置文件位于src/main/resources/config文件夹中的项目内,在构建期间,maven将其放入JAR内的/config文件夹中。初始化类,使用以下语句从那里读取文件:ClassLoaderclassloader=this.getClass().getClassLoader();BufferedReaderxmlSource=newBufferedReader(newInputStreamReader(classLoader.getResourceAsStream("/config/config.xml"

java - 如何在 Eclipse 中运行单个 JUnit 测试方法?

这个问题在这里已经有了答案:RunningasingleJUnittestinEclipse(14个答案)关闭7年前。在带有多个@Test注解的JUnit测试用例中,如何有选择地运行测试?例如,从下面的代码中,如何只运行一种测试方法?@TestpublicvoidtestHelloEmpty(){assertEquals(h.getName(),"");assertEquals(h.getMessage(),"Hello!");}@TestpublicvoidtestHelloWorld(){//h.setName("World");assertEquals(h.getName(),"

java - Junit 在通过测试时抛出警告

目前我正在做一个项目,我们正在使用junit进行测试,但由于它仍处于相当早期的阶段,许多功能尚未实现,尽管他们已经为它们编写了测试这意味着这些测试(显然)总是失败我想知道是否有人知道让JUnit在显示警告的同时通过测试的方法。最好使用可自定义的消息,以便我们可以注意到该功能尚未实现。重点是我们希望编写代码以便仅在所有测试都通过时进行编译,而目前这根本不可能。我意识到我们可以只注释掉或删除问题测试,但我们冒着忘记稍后将它们添加回来的风险。 最佳答案 org.junit.Assume会满足您的需求吗?

java - 在 JUnit 测试中检查深度相等性

我正在为克隆、序列化和/或写入XML文件的对象编写单元测试。在这三种情况下,我都想验证生成的对象是否与原始对象“相同”。我在我的方法中经历了几次迭代,发现了所有这些方法的错误,想知道其他人做了什么。我的第一个想法是在所有类中手动实现equals方法,并使用assertEquals。在决定覆盖equals以对可变对象执行深度比较是一件坏事之后,我放弃了这种方法,因为您几乎总是希望集合对它们包含的可变对象使用引用相等性[1]。然后我想我可以将方法重命名为contentEquals或其他名称。然而,经过更多思考,我意识到这不会帮助我找到我正在寻找的那种回归。如果程序员添加了一个新的(可变的)

java - JUnit Eclipse 显示 System.out.print() 的

我在Eclipse3.4中使用JUnit3。当我运行JUnit测试用例时,一切正常,测试完美完成。唯一的问题是我想查看我正在运行的类的输出。所有类都有一些输出值的基本System.out.print()。因此,当我运行测试时,我根本看不到任何控制台消息。当测试成功时,如何让Eclipse在控制台窗口中显示System.out.print()输出? 最佳答案 也许其他程序也在Eclipse的控制台上运行。请确保Eclipse显示您的JUnit代码的ActivityView。来自Eclipse帮助:Selectthe“DisplaySe

java - 您能否在不显式列出它们的情况下从命令行运行包中的所有 JUnit 测试?

如果测试类和JUnit都在类路径中,则可以从命令行运行JUnit测试,如下所示:javaorg.junit.runner.JUnitCoreTestClass1TestClass2现在,有没有办法在一个包(和子包)中运行所有测试?我正在寻找类似的东西javaorg.junit.runner.JUnitCorecom.example.tests.testsIWantToRun.*有没有简单的方法(不涉及maven或ant)? 最佳答案 Junit让你定义suites的测试。每个套件都定义了一组测试,运行该套件会导致运行所有测试。我所做

java - 如何预定义junit测试用例的运行顺序?

我在Java中有一个测试类,其中有几个由@Test注释的方法,不知何故,当我运行整个测试时,我想Junit在方法B之前运行方法A。有可能还是有必要? 最佳答案 这种对测试方法的依赖是糟糕的设计,应该避免。如果一个测试方法中有初始化代码需要为下一个方法完成,则应将其分解到setUp方法中。 关于java-如何预定义junit测试用例的运行顺序?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest