我在尋找可能性來測試一組eclipse插件,而不必爲每個測試的插件使用一個包。目前,我有一個運行Eclipse產品的PDE版本(約70個插件,功能和產品)。所有插件的所有單元測試都包含在一個簡單的java項目中,具有對所有插件的Eclipse項目引用,以便能夠實例化類並運行測試。由於普通Java項目未能完成所有目標平臺項目,因此我將PDE構建轉換爲maven tycho時不再有效。我沒有執行真正的OSGI插件測試,但是一些測試需要包含類路徑中包含的IProgressMonitor等核心eclipse類,因爲我在這些方法簽名中也使用了這些eclipse運行時接口。Eclipse Tycho:在不使用單個測試包的情況下測試插件
成功地建立新的Maven第谷建立後,我嘗試了幾種可能性,以獲得測試再次運行。
1)純Java測試項目轉換成插件測試項目
缺點:
- 爲了能夠在內部封裝測試類,我要每一個包裝導出與X-朋友:符號和要重複此過程爲每個新的測試包
2)添加第二個源文件夾在每個插件並將測試移動到相應的插件
缺點:
- Tycho似乎使用build.properties來包含編譯步驟所需的源文件夾。由於src/main/java和src/test/java都需要註冊爲源文件夾,因此真實類和測試類在target/classes輸出文件夾中混合並最終包含在插件的JAR文件中。我沒有找到一種方法來配置tycho使用src/main/java作爲sourceDirectory和src/test/java作爲testSourceDirectory。
- 如果包裝類型是「eclipse-test-plugin」,Tycho僅執行單元測試
- Sonar似乎不承認以這種方式執行的測試(我沒有花費大量時間來解決這個問題,也許有這點簡單的解決方案)
3)必要的Eclipse目標平臺的插件,純行家依賴加入到純Java測試項目
缺點:
- 的目標平臺信息被複制,一次在tycho構建的目標平臺上,一次在測試項目的maven依賴項列表中(用普通的maven-surefire執行)
個 - 目標平臺束在artifactory的展開兩次,一次作爲目標平臺P2存檔,而一旦如行家依賴(插件+ POM)
4)添加測試片段爲每個插件(這似乎是通常選擇的可能性)
缺點:
- 需要很大的努力(> 70插件,> 4500單元測試),所以我需要添加大約70個新的片段並分解所有測試。
此刻,可能性3)對我來說似乎是最合理的......任何建議? otherideas?
只是另一個想法:你也可以將70個捆綁在一起......但是如果有很好的理由將生產性代碼分解成捆綁包,那麼分離測試可能也是有意義的。我不明白爲什麼應該單獨處理測試(除了遷移工作)。 – oberlies
它確定將測試項目拆分爲單個包是有意義的,但是這需要幾周的工作,而我們沒有(並且沒有得到報酬)。我們決定使用方法3,但遇到其他問題,我更新了上述問題。建議? – Paolo
Paolo,你用你的發現來更新你的文章是件好事,但你應該把你的解決方案變成一個答案。在stackoverflow上明確允許回答你自己的問題。 – oberlies