日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

osgi 如何引入包_OSGi Testsuite:引入类名过滤器

發(fā)布時(shí)間:2023/12/3 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 osgi 如何引入包_OSGi Testsuite:引入类名过滤器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

osgi 如何引入包

OSGi Testsuite是一個(gè)JUnit測(cè)試運(yùn)行程序 ,它動(dòng)態(tài)地收集要執(zhí)行的測(cè)試類。 它已經(jīng)由我的同伴Rüdiger大約一年前出版,并且已經(jīng)在某些項(xiàng)目中證明有用。 但是對(duì)于gonsole,我們必須使用一個(gè)難看的補(bǔ)丁,因?yàn)?.0版僅支持.*Test后綴匹配測(cè)試類名稱。

我通過引入注解@ClassnameFilters (使用正則表達(dá)式來匹配任意名稱模式),在1.1版中解決了此問題。 這篇文章簡短地解釋了它是如何工作的。

OSGi測(cè)試套件

OSGi Testsuite提供了一個(gè)JUnit測(cè)試運(yùn)行程序BundleTestSuite ,可用于運(yùn)行給定數(shù)量的OSGi捆綁包內(nèi)的所有測(cè)試。 要使用它,請(qǐng)使用@RunWith(BundleTestSuite.class)注釋一個(gè)類,并使用@TestBundles({"bundle.1", ...})指定捆綁。 運(yùn)行時(shí),JUnit將處理列出的捆綁軟件中的所有類,其名稱以'Test'結(jié)尾。

@RunWith( BundleTestSuite.class ) @TestBundles( { "org.example.bundle1", "org.example.bundle2" } ) public class MasterTestSuite {}

不幸的是,Test postfix的固定結(jié)果顯得過于僵化。 在gonsole中,我們對(duì)單元測(cè)試和集成測(cè)試使用不同的后綴。 而且,我們不希望在OSGi Testsuite運(yùn)行中執(zhí)行單元測(cè)試。 但是這種區(qū)別在1.0版中是不可能的。

類名過濾器

受ClasspathSuite (在純JUnit測(cè)試上與OSGi Testsuite的工作原理類似)的啟發(fā),我引入了一個(gè)@ClassnameFilters注釋。 這允許基于正則表達(dá)式定義過濾器以匹配任意測(cè)試名稱模式:

@RunWith( BundleTestSuite.class ) @TestBundles( { "org.example.bundle1", "org.example.bundle2" } ) @ClassnameFilters( { ".*ITest" } ) public class IntegrationTestSuite {}

處理該示例將包括列出的捆綁軟件中所有類的測(cè)試,這些測(cè)試的名稱以'ITest'后綴結(jié)尾。 請(qǐng)注意,帶有簡單'Test'后綴的類將不被處理。

此外,可以使用前導(dǎo)'!'指定排除模式 :

@RunWith( BundleTestSuite.class ) @TestBundles( { "org.example.bundle1", "org.example.bundle2" } ) @ClassnameFilters( { ".*ITest", "!.*FooITest" } ) public class IntegrationTestSuite {}

給定的示例現(xiàn)在將執(zhí)行列出的捆綁軟件中所有類的測(cè)試,這些類的名稱以'ITest'后綴結(jié)尾,但名稱以'FooITest'結(jié)尾的類除外。 很簡單,不是嗎?

結(jié)論

OSGi Testsuite的過濾器機(jī)制得到了增強(qiáng),可以動(dòng)態(tài)執(zhí)行與任意名稱模式匹配的測(cè)試類。 使用ClassnameFilters批注和正則表達(dá)式可以輕松完成過濾器規(guī)范。

該代碼可在Eclipse公共許可證下獲得,并托管在GitHub上:

https://github.com/rherrmann/osgi-testsuite

可以從此p2存儲(chǔ)庫中獲得最新的穩(wěn)定版本:

http://rherrmann.github.io/osgi-testsuite/repository

翻譯自: https://www.javacodegeeks.com/2014/11/osgi-testsuite-introducing-classname-filters.html

osgi 如何引入包

總結(jié)

以上是生活随笔為你收集整理的osgi 如何引入包_OSGi Testsuite:引入类名过滤器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。