为了在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不能自动为我做这件事……
发布于 2009-03-11 08:48:24
我的解决方案是为扩展TestCase的项目中的所有测试创建一个抽象测试基类。它必须是抽象的,所以自动单元测试查找器不会考虑它。
在这个类的静态代码块中,我设置了我需要的所有属性。这确保代码只运行一次,并且在我的项目中的任何测试之前运行。
编辑您说Spring是在测试运行之前初始化的。这是你项目中的一个bug :一定是测试初始化了Spring。否则,您总是会遇到这样的问题,即您必须测试一些您无法控制的东西。
因此,我建议将Spring init代码移到一个您可以在环境准备好的时候调用它的地方。
或者,检查是否在setUp()中正确设置了环境,如果缺少属性,则抛出错误。这样,您至少可以知道为什么测试以后会失败。但当哪个子系统启动时,我仍然更喜欢完全控制。其他任何事情都只会招致灾难。
发布于 2009-03-11 10:26:28
你可以试试这个--转到
Window->Preferences->Java->Installed JREs
ans选择正在使用的JVM,然后放入一个“默认VM”参数,如
-DrunningInEclipse
然后你可以从你的TestCase中进行检查:
System.getProperty("runningInEclipse") != null
发布于 2009-03-11 09:47:32
当我想要为我的junit测试设置一些属性条目时,我实现了以下内容
protected void setUp() throws Exception {
super.setUp();
System.setProperty("Property1", "value1");
System.setProperty("Property2", "value2");
}
属性是在调用测试方法之前设置的
编辑:您还可以从文件中读取属性,并从文件中读取系统属性
https://stackoverflow.com/questions/633700
复制相似问题