2012-10-31 151 views
0

我想用不同的持久性單元測試一些代碼。因此,我寫了兩個相同的TestNG測試類,它們僅在持續單元的名稱上有所不同,我將其傳遞到Persistence#createEntityManagerFactory才能獲得正確的工廠。使用@BeforeClass方法中設置的不同參數執行TestNG測試

此調用帶註釋的設置方法`@ BeforeClass``

@BeforeClass 
public void setupClass() { 
    emf = Persistence.createEntityManagerFactory("test-eclipselink-h2"); 
    em = emf.createEntityManager(); 
    // init with some dummy data 

    // ... some more initialization 
} 

什麼是執行與不同的持久性單位這個測試類的選項?在測試類中使用硬編碼名稱就足夠了,不需要在外部指定它們。

回答

1
public class A { 
    private String s; 

    @DataProvider 
    public Object[][] dp() { 
     return new Object[][] { 
      new Object[] { "test-eclipselink-h1" }, 
      new Object[] { "test-eclipselink-h2" } 
     }; 
     } 

    @Factory(dataProvider = "dp") 
    public A(String s) { 
     System.out.println("Creating test class with " + s); 
     this.s = s; 
    } 

    @Test 
    public void test() { 
     System.out.println("Test " + s); 
    } 
} 
+0

此註釋@Factory不允許用於此位置 - 但它看起來很有希望 –

+1

您必須使用舊版本的TestNG。 –

+0

是的,版本是相當老...我會嘗試最新的和說服項目的所有者升級;) –

相關問題