0

次のような Ant スクリプトがあります。

<target name="create_report_file">
  <echo file="${testResultsDir}/test_report.xml">
    <testsuite name="${platformTask}">
    </testsuite>
  </echo>
</target>

<echo> と </echo> の間のタグは何を意味していますか? Ant はそれらを実行しますか、それとも出力しますか? または両方?

4

2 に答える 2

0

Ant スクリプトは機能しますか? create_report_fileターゲットを実行しようとするとどうなりますか?

file通常、エコー タスクは、パラメーターが指定されている場合は、内容をコンソールまたはファイルに単純にエコーします。

ただし、書かれているように、それはタスク<testsuite>のサブエンティティであり、そうではありません。<echo/>実際、<echo/>タスクには文書化されたサブエンティティはありません。実際には、サブエンティティ タスク<echo>も取りません。<condition/><fail/>

これが、ビルド ファイルが機能しているかどうかを尋ねている理由です。

彼らは、実行中のテストスイートをログに記録したいと考えているようです。これを機能させるには、次の 2 つの方法があります。

すべての < および > を文字エンティティに変更します。

<target name="create_report_file">
    &lt;echo file="${testResultsDir}/test_report.xml"&gt;
        &lt;testsuite name="${platformTask}"&gt;
        &lt;/testsuite&gt;
    </echo>
</target>

<echoxml>の代わりに使用<echo>:

<target name="create_report_file">
    <echoxml file="${testResultsDir}/test_report.xml">
        <testsuite name="${platformTask}">
        </testsuite>
    </echoxml>
</target>

別の可能性

タスクを持つ Ant プラグインを使用している可能性があり<testsuite>ます。これがどうなるかわかりません。<testsuite>タスクは JUnit または TestNG の一部ではありません。ただし、タスクを定義する Ant プラグインが使用されている場合、<testsuite>そのタスクが再定義される可能性があり<echo>ます。ビルド スクリプトに が含ま<taskdef>れていますか? もしそうなら、クラス参照は何ですか?

ユーザーがビルド スクリプトで独自の<testsuite>マクロを定義している可能性があります。ただし、それでは<echo>タスクが再定義されず、それでも機能しません。

于 2013-07-08T18:25:10.497 に答える