使用@BeforeClass方法中设置的不同参数执行TestNG测试

时间:2012-10-31 11:19:42

标签: java parameters testng

我想用不同的持久性单元测试一些代码。因此,我编写了两个相同的TestNG测试类,这些测试类只在我传递给Persistence#createEntityManagerFactory以获得正确工厂的持久性单元的名称上有所不同。

此调用位于使用`@ BeforeClass``

注释的设置方法中
@BeforeClass
public void setupClass() {
    emf = Persistence.createEntityManagerFactory("test-eclipselink-h2");
    em = emf.createEntityManager();
    // init with some dummy data

    // ... some more initialization
}

使用不同的持久性单元执行此测试类有哪些选项?将名称硬编码到测试类中就足够了,不需要在外部指定它们。

1 个答案:

答案 0 :(得分: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);
    }
}