osgi 如何引入包_OSGi Testsuite:引入类名过滤器
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jboss maven_使用Maven配
- 下一篇: eclipse扩展点_Eclipse扩展