2011-11-16 84 views
4

我正在尝试将Cobertura整合到我们的测试环境中,以便能够捕获代码覆盖率信息。测试使用ANT junit tasks从ant脚本运行,并且有超过50个ant脚本文件(build.xml)和一个或多个junit任务定义。如何为java应用程序指定全局系统属性?

根据Cobertura doc,junit测试必须通过junit任务的sysproperty嵌套元素给出cobertura覆盖数据文件的路径。对我来说意味着我需要更新所有这些50多个文件来为junit任务指定一个sysproperty元素,我打算将它作为最后的手段。

我在Linux (CentOS)上运行我的测试,我想知道是否有办法指定全局系统属性(-Dxxx=yyy)以便系统属性可用于系统中运行的所有Java应用程序。

-EDIT-
junit测试在分叉的JVM中运行。 <junit fork="yes" ...

+0

根据你使用的是哪个ide,它应该是非常简单的重构他们很快。你也可以尝试蚂蚁输入任务,如果这将有所帮助。 – r0ast3d

+0

@ r0ast3d正如我刚才提到的那样,如果我找不到另一个不需要修改脚本的简单解决方案,就是这样。 – srkavin

回答

7

您可以尝试设置ANT_OPTS环境变量。


ANT_OPTS - 应传递给JVM的命令行参数。例如,您可以定义系统属性或在此处设置最大Java堆大小。


CNC中

你必须设置_JAVA_OPTIONS环境变量。 Herehere有一些关于它的信息。

+0

+1谢谢。如果我在同一个虚拟机中运行测试,它会起作用,但我需要在分叉虚拟机中运行我的测试。我已经更新了这个问题。 – srkavin

+0

刚刚更新了我的答案。您必须设置_JAVA_OPTIONS环境变量来定义默认的JVM属性。 – szhem

+0

它工作!谢谢。 – srkavin

0

替代地设置的环境变量和在Ant脚本使用:

<property environment="env"/> 
<echo>${env.yourEnvVariable}</echo> 
... 

在使用ANT_OPTS的优点(这是主要供蚂蚁内部设定,例如FE VM参数..)为用户特定的可能性设置如果使用用户环境变量,而ANT_ARGS对于所有的ant脚本都是“静态的”。

相关问题