2013-07-04 90 views
2

一些修改的測試配置排除匿名類在測試中

test { 
    scanForTestClasses = false 
    include '**/*Test.class' 
    include 'lt/inventi/apollo/scenarios/**' 
} 

經過我的測試開始失敗,錯誤java.lang.Exception: Test class should have exactly one public constructor 所以我的解決辦法是,像這樣

test { 
    scanForTestClasses = false 
    include '**/*Test.class' 
    include 'lt/inventi/apollo/scenarios/**' 
    exclude '**/*$*' //fixed 
} 

這是正確的方式?

回答

3

一旦關閉測試類掃描,您有責任過濾掉所有非測試類。如果你不能比scenarios/**更具體,你必須補償排除(像你已經這樣做)。

請注意,將測試類掃描與包含/排除過濾器一起使用是完全正確的。

+0

你的意思是'打開'? –

+0

不,我沒有。程序如下:1.找到測試源集合中的所有類(例如'src/test/java'下的所有類)2.使用包含/排除的過濾器(如果有的話)3.使用測試類掃描進行過濾)4.使用JUnit/TestNG執行所有剩餘的類。 –