実行に最も時間がかかるスイート内の junit テストを見つけるにはどうすればよいでしょうか? junitreport ant タスクのデフォルトの出力は役に立ちますが、私たちのスイートには何千ものテストが多数の小さなスイートに編成されているため、面倒であり、最悪の攻撃者は常に変化しています。
luntbuild を使用していますが、ant から実行できるものが理想的です。
実行に最も時間がかかるスイート内の junit テストを見つけるにはどうすればよいでしょうか? junitreport ant タスクのデフォルトの出力は役に立ちますが、私たちのスイートには何千ものテストが多数の小さなスイートに編成されているため、面倒であり、最悪の攻撃者は常に変化しています。
luntbuild を使用していますが、ant から実行できるものが理想的です。
JUnitReport は、JUnit タスクによって生成された xml ファイルで機能します。同じ xml ファイル (TEST-*.xml) からテスト期間を読み取るタスクを作成できます。ただし、ショートカットを使用して、JUnitReport によって作成された概要ファイル (TESTS-TestSuites.xml) を読み取ることもできます。このファイルには、すべての情報が 1 つのファイルに含まれています。
これを行う簡単な方法は、少しだけ xsl を使用して、最も遅いテストを表示することです。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:text> </xsl:text>
<xsl:for-each select="testsuites/testsuite">
<xsl:sort select="@time" data-type="number" order="descending" />
<xsl:value-of select="@name"/> : <xsl:value-of select="@time"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Ant から実行するには、次のようにします。
<target name="show.slow.tests">
<xslt in="target/tests-results/TESTS-TestSuites.xml" out="target/slow.txt" style="slow.xsl"/>
</target>
次に、最初の X 行を調べるだけで、最も遅い X 個のテストを見つけることができます。
jfredrick$ head target/slow.txt
TeamCityを使用します。彼らは優れたレポートを持っており、バージョン 4.0 はテストを順序付けさえするので、最も不安定なテストが最初に実行されます。
クルーズ コントロールを使用してビルド サーバーでテストを起動する場合、実行時間で並べ替える最上位オプションの 1 つです。