当前位置:  开发笔记 > Android > 正文

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

如何解决《在Eclipse中运行JUnit时自动添加属性》经验,为你挑选了3个好方法。

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

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

有没有办法在运行JUnit时自动添加一组属性,所以我只能右键单击测试类,然后单击"Run as> Junit Test"来运行测试?

技术信息:Eclipse 3.3.2,JUnit 4,Java 5


编辑,关于Aaron Digulla的回应:

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

除此之外,我只需要知道我是否可以在Eclipse中轻松实现这一目标.因此,解决方案不得对Eclipse外部的应用程序编译产生任何影响,因为我的应用程序最终将由Maven2编译(和测试).

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

编辑2:事实上,我确实是通过测试单元开始Spring配置.因此,在启动Spring之前,我检查系统属性,如果我的属性没有设置,那么我给它们所需的值...

但是,我有点失望的是Eclipse不能自动为我做这件事......



1> siddhadev..:

你可以试试这个 - 去吧

 Window->Preferences->Java->Installed JREs

ans选择正在使用的JVM,而不是像"默认VM"这样的参数

  -DrunningInEclipse

您可以在TestCase中查看:

   System.getProperty("runningInEclipse") != null



2> Aaron Digull..:

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

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

[编辑]你说Spring在测试运行之前已初始化.这是项目中的错误:必须是初始化Spring的测试.否则,您将始终遇到必须测试控制之外的问题.

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

或者,检查环境是否在setUp()中正确设置,如果缺少属性则抛出错误.这样,您至少会知道为什么测试会在以后失败.但我仍然希望能够完全掌控哪个子系统变为现实.还有其他任何事情只会引发灾难.


我同意静态代码块init.还有另一种选择:@BeforeClass在一个可以初始化系统变量的方法上.

3> Markus Lausb..:

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

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

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

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

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

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有