Net:' junitreport'似乎没有提供一种方法来设置它在执行转换时使用的临时文件夹,并且似乎没有一种方法可以更新' java.io.tmpdir'用于报告任务。在这种情况下,设置' user.home'或者' java.io.tmpdir'调用ant时从命令行调用不是可以使用的解决方案。
详细说明:我在ant / mantis中使用junit任务,使用以下语法:
<target name="unittest_report">
<sequential>
<echo>User Home [ user.home ] [ ${user.home} ]</echo>
<echo>Java Temp [ java.io.tmpdir ] [ ${java.io.tmpdir} ]</echo>
<junitreport todir="${dir.unittest.reports}/raw">
<fileset dir="${dir.unittest.reports}/raw">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${dir.unittest.reports}"/>
</junitreport>
</sequential>
</mantis:modifyenvironment>
这似乎是一个非常标准的用法,增加了&#34; echo&#34;用于显示在执行任务时处于活动状态的系统属性值的语句。
任务运行正常,但处理相对于java临时目录(java.io.tmpdir)编写临时输出:
[15:55:03+0000/tester/unittest_report/echo] User Home [ user.home ] [ C:\Users\MyUser ]
[15:55:03+0000/tester/unittest_report/echo] Java Temp [ java.io.tmpdir ] [C:\Users\MyUser\AppData\Local\Temp\ ]
[15:55:04+0000/tester/unittest_report/junitreport] Processing c:\work\tester\build\reports\unittest\raw\TESTS-TestSuites.xml to
C:\Users\MyUser\AppData\Local\Temp\null591799606
关键值是&#34; java.io.tmpdir&#34;值和写入&#34; C:\ Users \ MyUser \ AppData \ Local \ Temp \ null591799606&#34;。
我尝试使用&#34; sysproperty&#34;临时更新临时目录,例如:
<mantis:modifyenvironment>
<sysproperty key="java.io.tmpdir" value="${dir.build}/junit.report.tmp"/>
<sequential>
<echo>User Home [ user.home ] [ ${user.home} ]</echo>
<echo>Java Temp [ java.io.tmpdir ] [ ${java.io.tmpdir} ]</echo>
<junitreport todir="${dir.unittest.reports}/raw">
<fileset dir="${dir.unittest.reports}/raw">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${dir.unittest.reports}"/>
</junitreport>
</sequential>
</mantis:modifyenvironment>
但是,这没有效果。
然后:
1)这是对#34; sysproperty&#34;的正确期望吗?更新&#34; junitreport&#34;的系统属性任务?例如,&#34; sysproperty&#34;可能仅限于嵌套&#34; java&#34;顺序任务调用,在这种情况下,期望更新对于&#34; junitreport&#34;会不正确的。
2)或者,&#34; java.io.tmpdir&#34;是否存在限制?特别是这会阻止它工作?
3)或者,&#34; sysproperty&#34;?
中是否存在错误对于这个问题,我无法更新&#34; java.io.tmpdir&#34; (或&#34; user.home&#34;)从命令行。这些值不能在比#jun; junitreport&#34;更广泛的范围内修改。任务调用。
最后:不确定它是否适合同一组问题:
4)&#34; mantis:modifyenvironment&#34 ;?的文档在哪里?我在本地&#34; mantis.jar&#34;中找到了这个,但我在mantis手册/文档中找不到它的文档。
5)&#34; junitreport&#34;通过&#34; java.io.tmpdir&#34;修改文件系统没有可能的覆盖似乎是非常糟糕的做法。