草庐IT

junit-runner

全部标签

java - JUnit 的 assumeTrue 如何与 "before"和 "after"注释一起工作?

我正在寻找关于如何Assume.assumeTrue()的验证在JUnit工作。我想在@BeforeClass中使用它方法,以便在不满足条件时我可以避免运行我的测试套件。但是,我想知道该方法的性质。如果assumeTrue收到一个带有假值的参数,它是跳过方法的其余部分(用@BeforeClass注释)还是执行剩余指令的其余部分。我也很好奇它可能对注释方法的任何其他影响:@After@Before@AfterClass编辑:在通过非常基本的测试运行它之后,如果assumeTrue(false)曾经运行过,那么该方法的其余部分以及任何用@Test注释的方法都将被忽略@After或@Befo

java - 使用 JUnit 运行测试用例时,在 Eclipse 调试中禁用拖放到框架功能

环境:Linux、EclipseJuno、Java7、JUnit当一个简单的应用程序(一个带有main方法的java类)在Debug模式下运行时,“DroptoFrame”功能在Eclipse中运行良好。但是,如果从junit测试用例调用相同的方法,则Eclipse中的“DroptoFrame”功能将被禁用。来自文档NotethiscommandisonlyavailableifthecurrentVMsupportsdroptoframeandtheselectedstackframeisnotthetopframeoraframeinanativemethod.正如我们在运行jun

java - Intellij Idea 可以配置为在发生 JUnit AssertionError 时中断吗?

是否可以将IntellijIdea配置为在调试期间发生JUnitjava.lang.AssertionError时中断?我知道IntellijIdea支持在调试过程中出现异常时中断的功能,但我不确定这是否适用于AssertionErrors。当必须在运行单元测试之前准备大型应用程序上下文时,这将特别有用。我搜索过,但找不到这个问题的答案。以下是我的“运行”>“查看断点...”>“Java异常断点”对话框的配置方式: 最佳答案 在Breakpoints对话框中,单击+按钮添加一个新断点,从下拉列表中选择“JavaExceptionBr

java - 如何设置 Ant 'junit' 任务的工作目录?

我的Ant构建包括一个运行一些测试的junit任务。为了使测试正常进行,必须更改指定当前工作目录(user.dir)的属性值,但我不确定如何实现这一点。有问题的任务目前看起来像这样:请注意,我已尝试使用“dir”属性和“jvmarg”任务将工作目录更改为C:/workspace/obp-web。但是,当我在打开详细输出的情况下运行Ant时,我看到以下输出,这表明工作目录没有正确设置:[junit]dirattributeignoredifrunninginthesameVM[junit]UsingSystemproperties{java.runtime.name=Java(TM)SE

java - 在 Eclipse 和 Maven 中使用 JUnit 的类路径问题

在JUnit测试中,我使用此代码加载特定于测试的配置文件:InputStreamconfigFile=getClass().getResourceAsStream("config.xml");当我通过eclipse运行测试时,它要求xml文件与测试文件在同一个目录中。当我使用Maven构建项目时,它要求xml位于src/test/resources中,以便将其复制到target/test-classes中。我怎样才能使它们都只使用一个文件? 最佳答案 将config.xml文件放在src/test/resources下,并在Ecli

java - 在 Java 生产代码中使用 Junit Assert API 可以吗

我想对我的方法参数进行空检查,比如参数不应该为空。可以在我的Java代码中使用这样的assertNotNull("Mapshouldnotbenull",filePaths);吗?我尽量避免if(filePaths==null){thrownewIllegalArgumentException("Mapscannotbenull");}只是为了让我的代码远离所有这些空检查。我知道我可以编写自己的Validator类并重载了notNull方法,但是是否存在一些现有的且易于使用的东西而不是重新发明轮子。我看到使用JUnitAssert的唯一缺点是它抛出AssertionError而不是Il

java - 我如何使用 JUnit 和 Hamcrest 比较 double ?

我正在使用JUnit和Hamcrest编写单元测试。我一直在使用以下方法比较double值:assertThat(result,is(0.5));但是,我现在需要比较计算值,但我不想与完整的double值进行比较。相反,我想比较接近度。我发现了一个名为IsCloseTo的类,但我不确定如何在assertThat中使用它,而且我在网上找不到任何示例。执行以下操作的正确语法是什么?//Ican'tdothisasIneedtoknowwhatmethods/classeswhateverIshouldbeusing//isCloseTodoesn'texist.assertThat(res

java - Junit 测试后的数据库清理

我必须使用Junit测试一些Thrift服务。当我作为Thrift客户端运行测试时,服务会修改服务器数据库。我找不到一个好的解决方案可以在每次测试运行后清理数据库。清理非常重要,尤其是因为当前从XML文件中读取的ID需要是唯一的。现在,我必须在运行测试后手动更改ID,以便下一组测试可以运行而不会在数据库中引发主键冲突。如果我可以在每次测试运行后清理数据库,那么问题就完全解决了,否则我将不得不考虑其他解决方案,例如生成随机ID并在需要ID的地方使用它们。编辑:我想强调一下,我正在测试一个正在写入数据库的服务,我没有直接访问数据库的权限。但由于服务是我们的,如果需要,我可以修改服务以提供任

java - 智能 : activate Maven profile when running Junit tests

我已经声明了一些特定于Maven配置文件的属性。我的pom.xml的一部分:releasetruefoo.xmlcibar.xml当我通过IntelliJIDEA2016启动Junit测试时,我在使用“ci”Maven配置文件时遇到了一些问题。我通过“Maven项目”面板激活我的配置文件,然后开始测试。问题是“my.properties.file”属性值等于“foo.xml”,而不是“bar.xml”。我对命令行没问题(我可以使用“-Pci”标志)。我如何告诉IntelliJ使用“ci”配置文件?谢谢。 最佳答案 您应该将配置文件添

java - 在 Eclipse 中的单独 JVM 中运行每个 JUnit 测试?

我有一个项目,在大约200个测试类中包含近500个单独的测试。其中一些测试在完成后并没有很好地拆除它们自己的状态,在Eclipse中,这会导致一些测试失败。通过Ant从命令行运行测试套件时,测试全部通过。我可以在Eclipse中以某种方式启用“测试隔离”吗?我不介意运行时间更长。从长远来看,我会清理行为不当的测试,但在短期内我想让测试正常工作。 最佳答案 如果您在Eclipse中使用Ant,则可以将JUnit任务设置为为每个测试派生一个新的JVM进程,从而提供隔离。http://ant.apache.org/manual/Tasks