如何将<junit>任务的工作目录设置为basedir?</junit>以外的其他任务

时间:2008-10-30 15:22:50

标签: java ant junit

我有一个带有junit目标的Ant脚本,我希望它使用与basedir不同的工作目录来启动VM。我该怎么做?

这是我的目标的伪版本。

<target name="buildWithClassFiles">
    <mkdir dir="${basedir}/UnitTest/junit-reports"/>
    <junit fork="true" printsummary="yes">
        <classpath>
            <pathelement location="${basedir}/UnitTest/bin"/>
            <path refid="classpath.compile.tests.nojars"/>
        </classpath>
        <jvmarg value="-javaagent:${lib}/jmockit/jmockit.jar=coverage=:html"/>
        <formatter type="xml" />
        <test name="GlobalTests" todir="${basedir}/UnitTest/junit-reports" />
    </junit>

</target>

2 个答案:

答案 0 :(得分:6)

你试过了吗?

 <junit fork="true" printsummary="yes" dir="workingdir">

答案 1 :(得分:0)

我认为其他答案可能忽略了您希望指定工作目录的事实,而不仅仅是您想要在特定目录上运行junit。换句话说,您希望确保如果测试创建的文件没有路径信息,则它来自您指定的基本目录。

尝试将您想要的目录作为JVM arg传递给junit,覆盖user.dir

 <junit fork="true" ...>
   <jvmarg value="-Duser.dir=${desired.current.dir}"/>
    ....