Fre*_*rik 5 java ant junit hudson
我有一个运行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>
Run Code Online (Sandbox Code Playgroud)
我用Google搜索和搜索,但我找到的解决方法是设置"dir","sysproperty"或"jvmarg".如你所见,我已经尝试过所有:)
有没有办法在标签中打印当前目录?它不支持.这将允许我验证目录是否实际改变了什么.
这个等式中的一个通配符是,这是在Hudson中运行的,它启动了一个启动atrunner的eclipse进程.这样我们就可以运行junit和eclipse插件junit测试.我认为不应该与这个问题有任何关系.
我认为你设置basedir属性是正确的(参见项目属性).但是,由于它是ANT(而不是JVM)的属性,因此它只是READ!
如果在调用ant任务时设置basedir,它会影响其他目标吗?请参阅命令行参考.
ant -Dbasedir=somedir
Run Code Online (Sandbox Code Playgroud)
或者,跨越一个新的ant进程来调用你的junit目标.请参阅AntCall任务或Ant任务.以下示例假定junit目标包含您的junit任务.我将此任务用于其他属性(到目前为止从未需要basedir属性).
<antcall target="junit">
<param name="basedir" value="${plugins.dir}/${name}"/>
</antcall>
<ant dir="${plugins.dir}/${name}" target="junit" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13353 次 |
| 最近记录: |