2012-03-20 180 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註釋)注入瀏覽器和用戶對象。

你實際上可以將這兩種方法結合在一起。