首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Eclipse中运行JUnit时自动添加属性

在Eclipse中运行JUnit时自动添加属性
EN

Stack Overflow用户
提问于 2009-03-11 08:09:29
回答 4查看 29.9K关注 0票数 17

为了在Eclipse上运行单元测试,我需要为VM设置一些属性。

因此,当我第一次运行JUnit测试时,我进入"Open run Dialog",然后在这个测试的JUnit配置中,我进入"Arguments“选项卡,并将所需的所有内容放在"VM arguments”文本区域中。

有没有一种方法可以在我运行JUnit时自动添加一组属性,这样我就只能右键单击测试类,然后单击"Run > Junit Test“来运行测试?

技术信息: Eclipse 3.3.2、Java4、JUnit 5

编辑,关于Aaron Digulla的响应:

这些属性在Spring配置文件*中使用。因此,我不能使用Aaron给出的想法,因为Spring将在测试运行之前初始化。

除此之外,我只需要知道我是否可以在Eclipse中以一种简单的方式实现它。因此,该解决方案不能对Eclipse外部的应用程序编译产生任何影响,因为我的应用程序最终将由Maven2编译(和测试)。

*很少有“单元”测试确实需要我的Spring配置才能运行。好的,我知道这不是真正的单元测试;o)

SpringEdit2Spring2:事实上,我确实是通过一个测试单元开始配置的。因此,在启动Spring之前,我检查系统属性,如果我的属性没有设置,那么我会给它们提供所需的值……

然而,令我有点失望的是Eclipse不能自动为我做这件事……

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-03-11 08:48:24

我的解决方案是为扩展TestCase的项目中的所有测试创建一个抽象测试基类。它必须是抽象的,所以自动单元测试查找器不会考虑它。

在这个类的静态代码块中,我设置了我需要的所有属性。这确保代码只运行一次,并且在我的项目中的任何测试之前运行。

编辑您说Spring是在测试运行之前初始化的。这是你项目中的一个bug :一定是测试初始化了Spring。否则,您总是会遇到这样的问题,即您必须测试一些您无法控制的东西。

因此,我建议将Spring init代码移到一个您可以在环境准备好的时候调用它的地方。

或者,检查是否在setUp()中正确设置了环境,如果缺少属性,则抛出错误。这样,您至少可以知道为什么测试以后会失败。但当哪个子系统启动时,我仍然更喜欢完全控制。其他任何事情都只会招致灾难。

票数 7
EN

Stack Overflow用户

发布于 2009-03-11 10:26:28

你可以试试这个--转到

 Window->Preferences->Java->Installed JREs

ans选择正在使用的JVM,然后放入一个“默认VM”参数,如

  -DrunningInEclipse

然后你可以从你的TestCase中进行检查:

   System.getProperty("runningInEclipse") != null
票数 27
EN

Stack Overflow用户

发布于 2009-03-11 09:47:32

当我想要为我的junit测试设置一些属性条目时,我实现了以下内容

protected void setUp() throws Exception {
        super.setUp();

        System.setProperty("Property1", "value1");
        System.setProperty("Property2", "value2");
}

属性是在调用测试方法之前设置的

编辑:您还可以从文件中读取属性,并从文件中读取系统属性

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/633700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档