gpt4 book ai didi

ant - 如何将 VM 属性复制到 ANT 中的 JUnit 任务?

转载 作者:行者123 更新时间:2023-12-04 22:22:38 25 4
gpt4 key购买 nike

作为 JUnit 测试(从 ANT 执行)的一部分,我需要访问相当少的属性,这些属性不仅依赖于环境,而且还可以从一次运行到下一次运行发生变化。为了不影响可能使用相同 build.xml 的众多其他开发人员中的任何一个,我想在命令行上使用 -D 定义这些属性。标志(它们很容易使用脚本填充)。关于 <junit> 的阅读ant 中的任务 我认为这些属性可以很容易地复制到使用 clonevm 运行 JUnit 测试的 VM。标志,但这似乎不起作用。一个简单的<echo><junit> 之前调用确认属性设置正确,然后我使用以下内容执行 JUnit 测试:

<junit
printsummary="on" showoutput="true" timeout="${tests.timeout.value}"
haltonfailure="false" errorproperty="test.error.occurred"
haltonerror="false" failureproperty="test.failure.occurred" forkmode="perTest"
maxmemory="${project.junit.maxmemory}" clonevm="true">
<jvmarg line="${project.test.vmargs}"/>
<sysproperty key="java.io.tmpdir" value="${java.io.tmpdir}"/>
<formatter type="xml" usefile="true"/>
<classpath>
<path refid="build.test.classpath"/>
</classpath>
<batchtest fork="yes" todir="${test.rpt.dir}">
<fileset dir="${test.bin.dir}">
<include name="**/${test.classes.run}.class"/>
<includesfile name="${test.run.includesfile}"/>
<!-- ignore inner classes -->
<exclude name="**/*$*.class"/>
</fileset>
</batchtest>
</junit>

然后我尝试使用 System.getProperty("property"); 读取属性值但总是为空。我假设我一定是做错了什么,所以属性没有发送到 JUnit VM,或者我没有正确读取它。有任何想法吗?我想我可以解决这个问题(使用脚本编写一个临时属性文件,然后从测试中读取它),但我仍然想知道如何做到这一点,如果可能的话。

最佳答案

尝试使用嵌套的 syspropertyset 元素。

参见 junit documentation

关于ant - 如何将 VM 属性复制到 ANT 中的 JUnit 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12281099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com