为Eclipse运行的所有JUnit测试指定自定义log4j.properties文件

时间:2014-06-15 16:37:59

标签: eclipse junit log4j

我想为从Eclipse运行的所有JUnit测试指定一个特定的Eclipse VM argument,即

-Dlog4j.configuration=log4j-dev.properties

这是因为我想要所有JUnit测试而不是默认的log4j.properties文件来获取特定的log4j配置文件。

到目前为止,我必须为每个JUnit测试指定上面的VM argument(在Run Configurations -> Arguments -> VM arguments中),这使得它很麻烦,因为我有很多测试。

2 个答案:

答案 0 :(得分:31)

您不需要为JVM提供不同的属性名称。日志记录代码使用类路径搜索log4j.properties文件。因此,您需要做的就是确保您的测试log4j.properties文件位于发布文件之前的位置。

我使用Maven,它在目录中放置文件以使其变得容易。我的版本log4j.properties位于src/main/resources目录中。我的测试版本在src/test/resources。 Eclipse构建路径(类路径)设置为在src/test/resources之前搜索src/main/resources,因此您的单元测试使用测试文件。 JAR(或WAR)构建指令使用src/main/resources中的文件。

答案 1 :(得分:1)

Eclipse使您能够定义应用于使用该VM的任何启动的默认VM参数。您可以在您的情况下使用它来定义具有您想要的log4j的VM参数的JRE配置,然后设置所有JUnit启动以使用该JRE定义。

在偏好设置中, Java > 已安装的JRE 并使用添加... 按钮定义JRE。在 JRE定义对话框中,有一个默认VM参数的字段。为此JRE定义提供一个有用的名称,例如“JDK 7 for JUnit”,以便您可以轻松识别它。

enter image description here

然后在JUnit启动中,在 JRE 选项卡上,选择您创建的JRE定义。

enter image description here