2012-03-20 181 views
0

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

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做到这一点的任何想法?

+0

有没有原因,你不这样做是Eclipse还是在Ant?对于这些情况,您可以在http://testng.org/doc/index.html上找到帮助。 – hidralisk 2012-03-20 17:43:32

+0

我不确定您在Eclipse或Ant中执行此操作时的含义。但是,请记住,我需要作为参数传递给此测试的对象是以前计算的结果。 – 2012-03-20 22:56:55

回答

0

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

public class ExampleClass{ 

private static Browser browser; 

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

public static Browser getBrowser() { 
    return browser; 
} 

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

0

你有两个选择:

  • 使用@Factory来创建你的对象。
  • 使用TestNG's Guice support(@Guice注释)注入浏览器和用户对象。

你实际上可以将这两种方法结合在一起。