我已經檢查了OSGI的一些測試解決方案,包括PAX,並且快速瀏覽了Spring DM中的抽象TestCase,但它們都顯示需要一個來激發並捆綁相關的bundle。我希望找到一些可以在沒有這個中間步驟的情況下工作。OSGi單元測試沒有步驟,捆綁軟件包
想象一下,將軟件包打包到類路徑中的能力,以便軟件包x和y構成捆綁包x,而包x和z構成捆綁包XZ。捆綁XZ不會「看到」包裹「Y」,但可以從包裹x中導入來自XY的服務。如果可能,或者存在等效的測試用例/庫,有沒有評論?
我已經檢查了OSGI的一些測試解決方案,包括PAX,並且快速瀏覽了Spring DM中的抽象TestCase,但它們都顯示需要一個來激發並捆綁相關的bundle。我希望找到一些可以在沒有這個中間步驟的情況下工作。OSGi單元測試沒有步驟,捆綁軟件包
想象一下,將軟件包打包到類路徑中的能力,以便軟件包x和y構成捆綁包x,而包x和z構成捆綁包XZ。捆綁XZ不會「看到」包裹「Y」,但可以從包裹x中導入來自XY的服務。如果可能,或者存在等效的測試用例/庫,有沒有評論?
我認爲使用Pax Exam從OPS4J中使用Tiny Bundles就是您的選擇。
Pax Exam和Tiny Bundles看起來非常專注於以某種形式創建包(即使它在內存中)。我需要更好地觀察,但是他們似乎一直要求類文件不像常規測試那樣從類似源的類路徑中提供。許多博客似乎表明,運行pax考試測試非常緩慢,並且不像常規junit測試案例中所期望的那樣虛擬。 – 2009-12-02 12:16:33
@Alin 我相信你從PAX :) thans的庫,我還可以建議你有一個單一的下載你需要的一切,而不是要求用戶逐一抓取。 – 2009-12-05 21:26:11
如果你真的想強制運行時可視性規則可能比你必須運行OSGi環境內的測試,並支付一定的性能開銷。
然而,通過將類與適當的依賴關係分離爲不同的編譯單元(例如獨立的Maven模塊X,Y,Z),然後運行標準測試框架(例如JUnit),而無需執行編譯時可見性OSGi的。
是的,但仍然不知道所有正確的pkgs和類已導入/導出... – 2009-12-06 23:27:15
一個觀點可能是**單元測試**意味着在OSGi環境之外的單個包中測試類。如果你想測試來自多個bundle的服務之間的交互,它可能更多地被分類爲**集成測試**。 – 2009-12-05 12:02:41
@Pavel 真正的我錯誤的q應該閱讀整合不單元測試,或者只是簡單的「測試」。 – 2009-12-05 21:24:51