2014-04-02 28 views
0

我正在開發關鍵字drivent測試框架。如何從java類執行testcase時獲取junit報告?

我想獲得在java類中調用的junit測試用例的html報告。 當測試用例本身在ant任務中調用時,我能夠獲得html報告:build,testcase_model,junit。

但我想要這個;構建,DriveTest(調用testcase_model的java類),junit。不幸的是,這不會生成報告。

我打電話給我的測試用例是這樣的:

JUnitCore junit = new JUnitCore(); 
junit.addListener(new TextListener(System.out)); 
Result result=junit.run(TestCase_Model.class); 

非常感謝你的人。 Jean

/!\ UPDATE /!-------------------------------------- -----------

你好。現在我放下「@RunWith(SomeRunner.class)」的方式。在我的DriveTest類中,我打電話給我的TestCase_Model,如下所示: JUnitCore junit = new JUnitCore(); RunListener listener = new RunListener(); junit.addListener(listener); Result result = junit.run(TestCase_Model.class);

我的DriveTest目標如下所示: <target name="DriveTest (5)"> <mkdir dir="${junit.output.dir}" /> <junit fork="yes" printsummary="withOutAndErr"> <formatter type="xml" /> <test name="tech.DriveTest" todir="${junit.output.dir}" /> <classpath refid="RWD_Testing.classpath" /> </junit> </target>

我終於得到報告,但我只是有一個全局結果,而不是一個詳細的結果(testRun1 - >成功,testrun2 - >成功)。你看起來有什麼不對嗎?

+0

是否有原因讓DriveTest不成爲JUnit Suite? – MrPotes

+0

謝謝你回答MrPotes。那麼我試圖讓DriveTest成爲一個junit測試用例(公開課DriveTest實現了junit.framework.Test),但它沒有改變任何東西。所以我想這與測試套件是一樣的? – j4nus

+0

也許你可以更詳細地介紹一下TestCase_Model實際上做了什麼?你在使用JUnit 3還是4? – MrPotes

回答

0

大多數允許運行在JUnit執行中的測試框架使用JUnit Runner,然後可以使用JUnit Runner將其應用於使用@RunWith註釋的類。

例如,看到黃瓜,JVM的Cucumber亞軍,從宣佈測試運行.feature文件內容如下:

import org.junit.runner.RunWith; 
import cucumber.api.junit.Cucumber; 

@RunWith(Cucumber.class) 
private class RunCukesTest { 
} 

所有尋找和執行測試在流道已完成,但因爲它的邏輯仍然是運行的JUnit測試,所有JUnit報告生成都按預期工作。

+0

謝謝你的寶貴答案MrPotes。我要和一個testrunner班一起嘗試,我會讓你更新。 – j4nus

+0

其實我沒有得到我應該放在跑步者課程中的東西(你的例子中的Cucumber.class,對嗎?)?我的DriveTest類應該在@RunWith(MyOwnRunnerclass.class)中使用該運行器? – j4nus

+0

我更新了我的第一個問題:) – j4nus