草庐IT

junit-ee

全部标签

java - 如何在 Eclipse 中为新的 JUnit 测试默认源文件夹?

我们的大部分Eclipse项目都有多个源文件夹,例如:src/main/javasrc/test/java当您右键单击一个类并选择NewJUnitTest时,新测试的默认源文件夹是“src/main/java”(可能是项目属性中列出的第一个源文件夹)。有什么方法可以更改新JUnit测试的默认源文件夹,以便当我执行上述操作时,默认情况下会在“src/test/java”文件夹中创建新测试? 最佳答案 我使用moreUnit,一个帮助编写单元测试的Eclipse插件。除其他功能外,它还允许您配置测试的默认源文件夹。

java - 将单元测试标记为 JUnit 中的预期失败

如何在JUnit4中将测试标记为预期失败?在这种情况下,我想继续运行这个测试,直到上游修补了某些东西。忽略测试有点过分,因为那时我可能会忘记它。我也许可以添加一个@expected注释并捕获assertThat抛出的异常,但这似乎也与预期的行为有关。这是我当前的测试结果:@TestpublicvoidunmarshalledDocumentHasExpectedValue(){doc=unmarshaller.unmarshal(getResourceAsStream("mydoc.xml"));finalSTtitle=doc.getTitle();assertThat(doc.ge

java - 对 JUnit 测试进行分组

有没有办法在JUnit中对测试进行分组,以便我只能运行一些组?或者是否可以注释一些测试然后全局禁用它们?我正在使用JUnit4,我无法使用TestNG。编辑:@RunWith和@SuiteClasses效果很好。但是有可能像这样只注释测试类中的一些测试吗?还是我必须注释整个测试类? 最佳答案 JUnit4.8支持分组:publicinterfaceSlowTests{}publicinterfaceIntegrationTestsextendsSlowTests{}publicinterfacePerformanceTestsext

java - JUnit 测试——分析预期的异常

这个问题在这里已经有了答案:InJavahowcanIvalidateathrownexceptionwithJUnit?(10个回答)关闭6年前。在JUnit中,我目前正在使用注解来预期我的测试中会出现异常。有没有办法分析这个异常?例如,我期望一个CriticalServerException,但我也想验证getMessage方法的内容。 最佳答案 如果您有JUnit4.7或更高版本,请尝试ExpectedExceptionthisquestion中有一个例子,复制如下:@RulepublicExpectedExceptionex

java - JUnit:可能 'expect' 包装异常?

我知道可以在JUnit中定义'expected'异常,这样做:@Test(expect=MyException.class)publicvoidsomeMethod(){...}但是,如果总是抛出相同的异常,但使用不同的“嵌套”呢?原因。有什么建议吗? 最佳答案 从JUnit4.11开始,您可以使用ExpectedException规则的expectCause()方法:importstaticorg.hamcrest.CoreMatchers.*;//...@RulepublicExpectedExceptionexpectedEx

java - 如何通过 JUnit 测试拦截 SLF4J(带 logback)日志记录?

是否有可能以某种方式拦截日志记录(SLF4J+logback)并通过JUnit测试用例获取InputStream(或其他可读的内容)...? 最佳答案 Slf4jAPI没有提供这种方式,但Logback提供了一个简单的解决方案。您可以使用ListAppender:一个白盒logbackappender,其中日志条目被添加到publicList字段中,我们可以使用它来进行断言。这是一个简单的例子。Foo类:importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;publicclassF

java - 来自 junit 测试的 "Forked Java VM exited abnormally"错误

我有一个在开发机器上单独运行时通过的javajunit测试。我们还有一个hudson作业,它在带有Java1.5的MacOSX10.4节点上运行所有测试,通过ant调用。直到最近,该测试才在hudson构建中通过,但现在(没有相关的代码更改)每次测试都失败,并出现以下错误:错误信息ForkedJavaVMexitedabnormally.PleasenotethetimeinthereportdoesnotreflectthetimeuntiltheVMexit.堆栈跟踪junit.framework.AssertionFailedError:ForkedJavaVMexitedabn

java - 如何在 Maven 和 Intellij 之间处理 Junits 中的相对路径

我有一个带有模块的maven项目/myProjectpom.xml/myModulepom.xml/foobar.txt考虑myModule中的Junit,需要打开bar.txt,maven的basedir就是模块目录。所以要打开文件bar.txt:newFile("foo/bar.txt")当您在intellij中启动相同的junit时执行mvntestBUT时效果很好,它会失败,因为Intellij将basedir设置在项目目录,而不是模块目录。Intellij尝试打开myProject/foo/bar.txt而不是myProject/myModule/foo/bar.txt有办法

java - 为什么我无法在使用 Maven 的 Junit 测试运行中访问 src/test/resources?

我在运行以下代码时遇到问题:configService.setMainConfig("src/test/resources/MainConfig.xml");从Junit@Before方法中。这是Maven构建其目标文件夹的方式吗? 最佳答案 直接访问MainConfig.xml。src/test/resources目录内容放置在您的CLASSPATH的根目录中。更准确地说:src/test/resources的内容被复制到target/test-classes中,所以如果你有以下项目结构:.└──src└──test├──java

java.lang.Exception : No runnable methods exception in running JUnits

我正在尝试在我的Linux命令提示符下运行JUnit/opt/junit/包含必要的JARS(hamcrest-core-1.3.jar和junit.jar)和类文件,我是使用以下命令运行JUnit:java-cphamcrest-core-1.3.jar:junit.jar:.org.junit.runner.JUnitCoreTestRunnerTestJunit类:importorg.junit.Test;importstaticorg.junit.Assert.assertEquals;publicclassTestJunit{@TestpublicvoidtestAdd(){