2

私はこれを持っており、正常に動作します:

<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は本当により良いドキュメントを持っているはずです。複雑な商品です...

4

2 に答える 2

3

設定

<fileset dir="com/xyzcompany/abcproject/test/junit">

<batchtest>
    <fileset dir="${buildTests}">
        <include name="**/*Test*.class"/>
    </fileset>
</batchtest>

${buildTests} に com/xyzcompany/abcproject/test/junit の部分を含めないでください。

于 2013-02-13T17:39:33.753 に答える
0

${build}ディレクトリからバッチ テスト用のファイルを取得する場合は、そのように指定する必要があります。

    <batchtest>
        <fileset dir="${build}/com/xyzcompany/abcproject/test/junit">
            <include name="**/*"/>
        </fileset>
    </batchtest>
于 2013-02-13T17:39:24.660 に答える