gpt4 book ai didi

java - 在 ant junit 任务中更改工作目录

转载 作者:搜寻专家 更新时间:2023-10-31 08:29:50 24 4
gpt4 key购买 nike

我有一个运行 JUnits 测试的 ant 文件。这些测试依赖于某些配置文件的相对路径。我尝试为批量测试设置工作目录,但失败了。

我希望工作目录是${plugins.dir}/${name}

ant 脚本的 JUnit 部分:

<junit haltonfailure="no" printsummary="on" fork="true" showoutput="true" dir="${plugins.dir}/${name}">
<jvmarg value="-Duser.dir=${plugins.dir}/${name}"/>
<classpath>
<path refid="project.classpath"/>
<pathelement location="${plugins.dir}/${dependency}/@dot/"/>
<pathelement location="${plugins.dir}/${name}/" />
</classpath>
<formatter type="xml" />
<sysproperty key="basedir" value="${plugins.dir}/${name}"/>
<sysproperty key="dir" value="${plugins.dir}/${name}"/>
<batchtest todir="${junit.output}">
<fileset dir="${dir}">
<include name="**\*AllTests.class" />
</fileset>
</batchtest>
</junit>

我用谷歌搜索过,但我发现的解决方法是设置“dir”、“sysproperty”或“jvmarg”。如您所见,我已经尝试了所有方法:)

有没有办法在标签中打印当前目录?它不支持。这将使我能够验证目录是否实际更改以及更改为什么。

这个等式中的一个通配符是它正在 Hudson 中运行,它启动了一个启动 antrunner 的 eclipse 进程。这样我们就可以同时运行 junit 和 eclipse 插件 junit 测试。应该与我认为的问题无关。

最佳答案

我认为您设置 basedir 属性是正确的(参见 projects attributes )。但是,由于它是 ANT(而不是 JVM)的属性,所以它是只读的!

如果你在调用你的ant任务时设置了basedir,它会影响其他目标吗?参见 Command Line reference .

ant -Dbasedir=somedir

或者,跨越一个新的 ant 进程来调用您的 junit 目标。查看AntCall taskAnt task .以下示例假定 junit 目标包含您的 junit 任务。我将此任务用于其他属性(到目前为止从未需要 basedir 属性。

<antcall target="junit">
<param name="basedir" value="${plugins.dir}/${name}"/>
</antcall>

<ant dir="${plugins.dir}/${name}" target="junit" />

关于java - 在 ant junit 任务中更改工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4366821/

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