Java 运行TestNG测试实例

Java 运行TestNG测试实例,java,testing,testng,Java,Testing,Testng,我希望以编程方式运行TestNG test的实例。 我的测试是这样的: public class MyTest { private Browser browser; private User user; public MyTest(Browser browser, User user) { this.browser = browser; this.user = user; } @Test public void test

我希望以编程方式运行TestNG test的实例。 我的测试是这样的:

public class MyTest {
    private Browser browser;
    private User user;

    public MyTest(Browser browser, User user) {
        this.browser = browser;
        this.user = user;
    }

    @Test public void testExample() {
        ...
    }
}
因为我的测试需要将一些对象传递给它的构造函数才能工作,所以我不能简单地提供测试类对象。所以这是行不通的:

TestNG testng = new TestNG();
testng.setTestClasses(MyTest.class);
testng.run();

有没有关于如何使用TestNG的想法?

您有两个选择:

  • 使用@Factory创建对象
  • 使用(@Guice注释)插入浏览器和用户对象

实际上,您可以同时使用这两种方法。

您可以使用stactic变量或方法来获取这些对象。但只有当您不计划并行执行测试时,这才有效

public class ExampleClass{

private static Browser browser;

public DriverContainer(Browser brows){
    browser = brows;
}

public static Browser getBrowser() {
    return browser;
}

ExampleClass可以在@BeforeSuite或@BeforeTest方法中的另一个测试类中创建。

在Eclipse或Ant中不这样做有什么原因吗?对于这些情况,我不确定在Eclipse或Ant中这样做意味着什么。但是,请记住,我需要作为参数传递到此测试的对象是先前计算的结果。