更改 ant junit 任务中的工作目录

2024-05-03

我有一个运行 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 属性是正确的(参见项目属性 http://ant.apache.org/manual/using.html#projects)。然而,由于它是 ANT(而不是 JVM)的属性,因此它是只读的!

如果在调用 ant 任务时设置 basedir 是否会影响其他目标?看命令行参考 http://ant.apache.org/manual/running.html.

ant -Dbasedir=somedir

或者,跨越一个新的 ant 进程来调用您的 junit 目标。请参阅AntCall任务 http://ant.apache.org/manual/Tasks/antcall.html or Ant task http://ant.apache.org/manual/Tasks/ant.html。以下示例假设 junit 目标包含您的 junit 任务。我将此任务用于其他属性(到目前为止从未需要 basedir 属性。

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

<ant dir="${plugins.dir}/${name}" target="junit" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 ant junit 任务中的工作目录 的相关文章

随机推荐