2012-12-05 28 views
0

我有,必須從一些測試程序只能在運行測試的一組,並不會直接因爲他們需要的是在該套件設置電平如何防止測試之外運行一個SuiteTest

所以我的測試套件實例化的資源是

@RunWith(Suite.class) 
@Suite.SuiteClasses({IT_LiquidBaseTest.class}) 
@ContextConfiguration(locations = {"classpath:spring-config-test.xml"}) 
public class DBTestSuite { 
    private static MysqldResource mysqldResource; 
    .... 

我的測試都是這樣

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = {"classpath:spring-config-test.xml"}) 
public class IT_LiquidBaseTest { 
    @Autowired 
    private DataSource dataSource; 

所以當我啓動套件一切都很好,但是當我打電話行家它試圖直接運行IT_LiquidBaseTest和FA金正日。 我仍然需要依賴注入來獲得一個數據源

你已經知道了如何防止Maven的萬無一失插件使這一點,但能測試套件的運行

感謝

+0

我通過檢查堆棧做(調用獨立時,從行家和套房應該是不同的)。但它很髒。但你真的需要它嗎?只需檢查測試資源是否準備好,如果沒有,則通過/未通過測試 – piotrek

回答

1

您可以使用org.junit.Assume測試你的套件的狀況。

@Before 
public void beforeMethod() { 
    org.junit.Assume.assumeTrue(DBTestSuite.someCondition()); 
    // rest of setup. 
} 

如果失效失敗測試未運行。

請參閱頂級投回答問題:Conditionally ignoring tests in JUnit 4

相關問題