膨大な量のjunitがあり、それらすべてを実行するには長い時間がかかります。ただし、CPU とメモリの使用率は約 30% にすぎません。JUnit はスレッドセーフではなく、修正することができないため、同じ jvm 内の並列スレッドで JUnit を実行できません。私が知る限り、junit ant タスクは別の jvm を起動して、junit を実行します。ant から junits 用にいくつかの jvm を実行することは可能ですか? このようなソリューションは、実行時間を大幅に短縮できると思います。
現在、私はそのようなコードを使用してantでそれらを実行しています:
<for param="bundle" keepgoing="true">
<path>
<dirset dir="${testdir}/plugins">
<depth max="0"/>
</dirset>
</path>
<sequential>
<echo message="Running tests in bundle @{bundle}"/>
<junit outputtoformatters="no" printsummary="yes" failureproperty="test.failed" maxmemory="512m" fork="yes" forkmode="once">
<classpath>
<path refid="tests.classpath" />
</classpath>
<formatter type="xml" />
<batchtest todir="${junit.result.dir}">
<fileset dir="@{bundle}/src">
<patternset refid="test.sources" />
</fileset>
</batchtest>
</junit>
</sequential>