2012-01-30 19 views
8

JUnit/TestNG PROGRAMMATICALLYによって生成されたテストレポートを作成します。だから、それはANTを排除します。私の主な関心事は、テストケースを実行しながらJunitによって作成されたXMLファイルを生成することです。私はそれを達成するのを助けるRunListenerを読んだが、私はどのように把握することができていないのですか?私はテストケースを作成するためにSeleniumを使用しています。JUnitレポートで使用されるXMLファイルを生成する

JUnitで作成されたXMLファイルはどのように生成できますか?

+0

はのJUnit XML [形式](HTTPを使用します。 catchsoftware.com/display/ET/JUnit+Format) – Manu

答えて

9

JUnitはXMLレポートを生成しません。 JUnitの標準XML出力形式はありません。

他のツールは、Ant/MavenなどのXMLを生成します。したがって、最初に行う必要があるのは、作成したファイルで何をしたいのかなど、XMLファイルの形式を決定することです。

そして、実際には、プログラム上の制限はANTを除外しません。 antをプログラムで呼び出すことができます(Invoke ant from java, then return to java after ant termination参照)。これはおそらく、antと互換性のあるファイルを生成する最も簡単な方法でしょう。

独自のXMLファイルを作成する場合は、RunListenerを拡張するクラスを作成し、JUnitCore#run()などを呼び出してテストを実行できます。

public void main(String... args) { 
    JUnitCore core= new JUnitCore(); 
    core.addListener(new RingingListener()); 
    core.run(MyTestClass.class); 
} 

あなたのRunListenerは、適切なXMLを出力します。これはかなり簡単に理解できます:メソッドtestRunStarted()などをオーバーライドし、XMLを書き出します。どのように動作するかの例については、TextListenerを参照してください。これは同じことですが、テキストの場合は同じです。

+0

TextListener pagaが削除されました。別のリンクを共有できますか? – anon

+0

リンクを更新しました。 –

0

あなたが使用することができますTestNGのドキュメントを見ればあなたが here ほぼ同じに尋ねた:

を一つだけ方法があるorg.testng.IReporterインタフェース: ます。public void generateReport(リスト・スイートを、 String outputDirectory) このメソッドは、すべてのスイートが実行されたときにTestNGによって呼び出され、そのパラメータを検査して、完了した実行に関するすべての情報にアクセスできます。

4

xmlファイルには、アリのJUnitによって生成され、そして我々は、プログラムによって、コードは次のようになりますことを行うことができます://ヘルプ:

Project project = new Project(); 
JUnitTask task = new JUnitTask(); 
project.setProperty("java.io.tmpdir",String); //set temporary directory 
task.setProject(project); 
JUnitTask.SummaryAttribute sa = new JUnitTask.SummaryAttribute(); 
sa.setValue("withOutAndErr"); 
task.setFork(false); 
task.setPrintsummary(sa); 
FormatterElement formater = new FormatterElement();   
FormatterElement.TypeAttribute type = new FormatterElement.TypeAttribute(); 
type.setValue("xml"); 
formater.setType(type); 
task.addFormatter(formater); 
JUnitTest test = new JUnitTest(String);// set Test.class.getname()   
test.setTodir(File); // set Location for your report 
task.addTest(test);   
task.execute(); 
+1

どのjarファイルが使いましたか?あなたは共有してもらえますか? – anon

関連する問題