私はこれを持っており、正常に動作します:
<target name="runjunit">
<junit>
<classpath>
<pathelement path="${build}"/>
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</classpath>
<test name="com.xyzcompany.abcproject.test.junit.CalculatorTest"/>
<formatter type="brief" usefile="false"/>
</junit>
</target>
ただし、複数のテストがあります。だから私はこれを行います:
<target name="runjunit">
<junit>
<classpath>
<pathelement path="${build}"/> <---- this doesn't seem to work anymore
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</classpath>
<batchtest>
<fileset dir="com/xyzcompany/abcproject/test/junit">
<include name="**/*.*"/>
</fileset>
</batchtest>
<formatter type="brief" usefile="false"/>
</junit>
</target>
ただし、ディレクトリが存在しないことがわかります。
C:\Users\me\Desktop\repository\mainproj\trunk\com\xyzcompany\abcproject\test\junit does not exist.
上記は次のようになります。
C:\Users\me\Desktop\repository\mainproj\trunk\build\com\xyzcompany\abcproject\test\junit
ご覧のとおり、classpathのpathelementは、単一のテストではtrunk / build / comを設定しますが、batchtestでは設定しません。
プライバシーのために難読化されたディレクトリ名とパッケージ名。
クラスパスのpathelementが実際に機能するようにbatchtestを変更する方法はありますか?ありがとう!
編集:
これは機能しません:
<batchtest>
<fileset dir="${build}/com/xyzcompany/abcproject/test/junit">
<include name="**/*.*" />
</fileset>
</batchtest>
それは私に与えます:
java.lang.ClassNotFoundException: CalculatorTest
クラスはそれがビルド中であることを知らないので、に設定して<fileset dir="${build}/com/xyzcompany/abcproject/test/junit">
も意味がありません。したがって、クラスパスの設定は正しいオプションですが、では機能しません<batchtest>
。
編集2:
今、私はそれについて本当に考えているので、それを行うのは理にかなっています<fileset dir="${build}/com/xyzcompany/abcproject/test/junit">
。ただし、スピンアップjava
すると、クラスパスjunit
からjunitは実行されません。${build}
編集3:
<batchtest>
<fileset dir="${build}">
<include name="com/xyzcopmany/abcproject/test/junit/*"/>
</fileset>
</batchtest>
最終的な答え。Antは本当により良いドキュメントを持っているはずです。複雑な商品です...