我有一个运行 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(使用前将#替换为@)