2011-05-25 32 views
0

我試圖從這裏[1]調整pde單元測試自動化過程來處理多個測試套件。本文使用無法處理多個測試套件的org.eclipse.jdt.internal.junit.model.ITestRunListener2。我正在考慮使用org.eclipse.jdt.junit.TestRunListener。爲Eclipse PDE單元自動化過程添加多測試套件支持

我試圖轉換包含的實現org.eclipse.jdt.internal.junit.model.ITestRunListener2的實施junit.runner.TestRunListener因爲它testRunStarted()方法包括一個測試套件名稱參數,但未能找到任何例如關於如何使org.eclipse.jdt.internal.junit.model.RemoteTestRunnerClient變爲使用它(即使PDE測試結果協議支持它,我也不確定)。

  1. 使用JUnitCore.addTestRunListener(listener)是否能夠替換整個測試結果偵聽器方法?沒有必要能夠遠程運行測試。
  2. 有關如何將多套件支持添加到[1]的任何其他建議?

[1] http://www.eclipse.org/articles/article.php?file=Article-PDEJUnitAntAutomation/index.html


你好,這是OP,無法添加保羅的CommNet韋伯斯特的答覆,所以我張貼這一點。

RemoteTestRunnerClient的事情是,它根據org.eclipse.jdt.internal.junit.runner.MessageId中定義的協議將通知委託給它的偵聽器,並從TCP套接字讀取消息。問題在於TEST_RUN_START/END消息不包含套件的名稱,導致所有測試都與同一套件相關聯。

我在設置自動化測試框架的同時查看了Eclipse測試框架,但沒有找到任何令人信服的理由來支持它,而不是在文章中建議的方法。我不確定,但我認爲文章不使用ETF的原因是對測試結果彙總缺乏足夠的支持。現在我明白能夠指定哪些套件應該通過test.xml文件運行,因爲我正在使用傳遞給'org.eclipse.pde.junit.runtime.coretestapplication'應用程序的'-classnames'參數。我不介意考慮改用ETF,但事先想要有一個令人信服的理由。底線是,我的設置做了99%的要求,我更喜歡快速-&二性解決方法,作爲對抗完整的測試系統轉換。

回答

0

我不認爲你必須做任何事情w.r.t. RemoteTestRunnerClient。它需要ITestRunListener2,這是由TestSessionNotifier實施。這就向ITestSessionListener發佈事件,它將它們轉發到TestRunListener

這就是說,這篇文章中的一個指針是Eclipse Test Framework [1]。

我們用它來運行我們的插件測試。獲得框架本身後,每個測試插件只需要一個test.xml [2]文件。該文件可以指定UI測試和無頭測試,並可以列出該插件的多個TestSuite。我已經鏈接了我們的例子。

[1] http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.test/testframework.html?view=co

[2] http://dev.eclipse.org/viewcvs/viewvc.cgi/e4/org.eclipse.e4.ui/tests/org.eclipse.e4.ui.tests/test.xml?view=co&content-type=text%2Fplain