簡體   English   中英

在Tycho項目中為非OSGi JUnit測試添加僅測試依賴項

[英]Adding test-only dependencies for non-OSGi JUnit test in a Tycho project

我有幾個OSGi-bundle,我用Eclipse Tycho構建。 所有代碼依賴關系都是先清除管理的。

現在我想開發一些純JUnit-Tests來測試bundle-internal功能。 這些測試不需要OSGi容器來執行,但它們確實需要Mockito。

顯然,只有在運行非OSGi測試時才需要Mockito,而不是在捆綁包本身執行期間,將依賴項添加到MANIFEST.MF文件是錯誤的。

我目前的方法是添加一個包含mockito.jar的項目/ lib文件夾,並將此jar手動添加到他的類路徑中。 這適用於本地eclipse執行,暫時沒問題。

問題是,每個同事都需要將jar添加到類路徑中,因為.classpath文件顯然沒有簽入。另外,我猜測試最終將在例如構建時執行時會出現問題服務器,因為缺少類路徑條目。

所以我的問題是:如何以對每個同事輕松工作的方式向Mockito添加依賴關系,並且在捆綁執行期間不會導致任何問題?

我可以將它作為可選依賴項添加到MANIFEST.MF文件中,但如上所述,它並不像是正確的解決方案。

我可以將mockito-dependency作為正常的pom-first依賴項添加到范圍test還是會導致與正常的manifest-first方法沖突?

我還發現了maven-eclipse-plugin ,它提供了一個classpathContainers配置選項,但我沒有找到類似的選項來將類庫添加到類路徑中。

測試位於包本身的src / test / java文件夾中。

將測試依賴項添加到使用eclipse Tycho構建的項目的最佳方法是什么,因為我在技術上不需要Tycho來執行這些測試?

如果您可以使用完全僅由Maven依賴項構成的類路徑(例如,向Mockito)運行測試,那么您還可以為這些測試創建一個帶有jar包裝的模塊。 從該模塊中,您還將向該bundle添加一個依賴項,然后將其用作普通JAR。

在這種情況下你放松的是傳遞依賴的解決方案。 然后,Maven會解析jar項目,而Maven不知道OSGi包的Manifest依賴關系。 但是,根據您要測試的確切性質,這可能仍然有效。

通常,您會在單獨的包中看到測試,它具有自己的清單和依賴項。 這不是標准的Maven結構,但它更適合OSGi包的結構。

例如,查看JDT-core git存儲庫 ,您將看到單獨的測試包。 請注意,測試包具有特殊的packaging-typeeclipse-test-plugin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM