2014-02-17 24 views
5

如何從最終存檔中過濾課程?如何從我的ShrinkWrap存檔中刪除我的測試課程

public static JavaArchive unitTestJar() { 
    return ShrinkWrap.create(JavaArchive.class) 
      .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml") 
      .addPackages(false, getCorePackages()); 
} 

public static String[] getCorePackages(String... args) { 
    List<String> strings = Arrays.asList(
      "com.lm.util", 
      "com.lm.infrastructure" 
    ); 

    strings.addAll(Arrays.asList(args)); 
    return (String[]) strings.toArray(); 
} 

我看到有一個Filter API,但我似乎無法找到如何使用它的例子。最終我想我只是刪除任何是*Test*。這比試圖一次添加一個類更容易。

回答

9

試試這個:

ShrinkWrap.create(WebArchive.class) 
      .addPackages(true, Filters.exclude(".*Test.class"), getCorePackages()); 
+0

@Sam,現在的問題是關於API的使用。在這種情況下,我看不出比可測試的例子更好的幫助。 –

+0

哎呀,對不起 - 我正在評論StackOverflow評論部分的答案/問題。不幸的是,它沒有向我顯示答案的背景。 –

+1

這個正則表達式,'。* Test。*',也將排除名稱中包含單詞「Test」的類,它不一定是JUnit測試文件。使用'。* Test.class'僅排除名稱以'Test'結尾的文件。 – Virginie

相關問題