簡體   English   中英

如何為PAX Exam OSGi測試運行的測試包獲取傳遞依賴關系

[英]How to get transitive dependencies for a tested bundle for PAX Exam OSGi test runs

我正在使用PAX考試進行集成測試。 我要測試的捆綁包取決於其他幾個捆綁包。 不幸的是,我無法自動獲取所有依賴項。

在我的測試課中

@Configuration
public Option[] config() {
    return options(
        junitBundles(),
        mavenBundle("io.moquette", "moquette-broker")
    );
}

不幸的是,它並沒有引入moquette-broker的所有依賴關系,只是單個jar本身。

測試類中是否有一種方法可以指定應使moquette-broker的所有依賴項都可用於運行? 有什么辦法可以將它放在pom.xml中作為exam-maven-plugin? 當然,我在文檔中什么都沒有看到。 還是我需要自己在課堂上枚舉它們?

在普通的PAX考試中無法獲得這種行為。 您必須在測試的@Configuration元素中列出所有依賴項。

使用Apache Karaf或bndtools可以簡化這種情況的兩種方法。 兩者以不同的方式提供幫助。

如果將karaf用作部署平台,則可以將應用程序定義為功能。 在功能中,您必須像在pax考試中一樣列出所有捆綁軟件依賴關系,但您也可以引用其他此類功能。 因此在實踐中,它的工作量要少得多。 Pax考試還可以根據功能運行此類karaf測試。 請參閱Aries JPA示例

另一個選擇是在首先定義索引的地方使用bndtools。 該索引可以基於pom,也可以包括傳遞依賴項。 然后為進行測試,定義一個bndrun文件,其中僅包含要部署的頂級捆綁包。 然后,解析程序將自動確定運行捆綁包的有效列表。 請參閱Aries jax-rs whiteboard的此測試運行定義 不幸的是,這不能與pax考試一起使用。 Bndtools有自己的跑步者。 bndtools的maven集成也不如在所使用的快照版本中所看到的那樣穩定。 希望bndtools的下一個版本(3.4.0)允許僅使用發行版來執行此操作。

暫無
暫無

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

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