環境
を使用して、ant1-9-0.jar
プログラムで JUnit テストを実行しています。ant-junit-1.9.0.jar
ant-launcher-1.9.0.jar
私のコードには、JUnit Taskを返す次の関数があります。
/**
* Generates a JUnit task which runs every single test in a new JVM
* @return task The JUnit task
* @throws Exception
*/
public JUnitTask generateRunTestsTask() throws Exception {
/* New JUnit task */
JUnitTask task = new JUnitTask();
task.init();
/* Summary settings */
JUnitTask.SummaryAttribute sa = new JUnitTask.SummaryAttribute();
sa.setValue("withOutAndErr");
task.setPrintsummary(sa);
/* JVM configuration */
task.setFork(true);
task.setDir(new File(this.deliveryBinDir));
task.createJvmarg().setValue("-Duser.dir=" + this.deliveryBinDir);
/* Output to file */
FormatterElement.TypeAttribute typeFile = new FormatterElement.TypeAttribute();
typeFile.setValue("xml");
FormatterElement formatToFile = new FormatterElement();
formatToFile.setType(typeFile);
task.addFormatter(formatToFile);
/* Task options */
task.setHaltonfailure(false);
task.setShowOutput(true);
task.setOutputToFormatters(true);
List<String> testSuites = getTestJarList(this.deliveryLibFolder);
for (String singleSuite : testSuites) {
JUnitTest test = new JUnitTest(singleSuite);
/* Sets reports location */
test.setTodir(this.testReportsFolder);
task.addTest(test);
}
return task;
}
JUnit テストは問題なく実行され、出力はファイルに正常に保存され.xml
ます。
問題
(プロセス全体の最後だけでなく)結果をライブで表示したいので、出力をコンソールに出力する必要があります。そのために、ブロックFormatterElement
のすぐ下に1 秒を追加しました。/** Output to file */
/* Output to screen */
FormatterElement.TypeAttribute typeScreen = new FormatterElement.TypeAttribute();
typeScreen.setValue("plain");
FormatterElement formatToScreen = new FormatterElement();
formatToScreen.setType(typeScreen);
formatToScreen.setUseFile(false);
formatToScreen.setOutput(System.out);
task.addFormatter(formatToScreen);
しかし、私のコンソールにはまだログが表示されません。を削除しようとしましたがformatToFile
FormatterElement
、成功しませんでした。何か提案はありますか?
ノート:
- これらの単体テストは本当にフォークする必要があり、変更することはできません。
- Ant ProjectやAnt Targetの設定など、さらにコードが必要な場合はお知らせください。
- 単体テストには実際に
Sysouts
、 - 動作する一貫した
build.xml
ファイルを再現しました。 - 必要に応じて、ここに Apache Ant JUnit リポジトリがあります。