2017-12-01 9 views
0

を渡すTestNG.xmlを作成します。文法的に私はtestng.xmlファイルを生成し、@Testメソッドはパラメータとともに書かれていSampleClass.javaを実行する必要があります2つのJavaファイルDynamicTestNG.javaを作成していることについては私はコードスルー<em>testng.xml</em>ファイルを作成し、プロ@Testメソッドにパラメータを渡すために持っていることを意味ダイナミック<em>testng.xml</em>ファイルを使用してテストスクリプトを実行する必要が動的ファイルとパラメータ

DynamicTestNG.java

public class DynamicTestNG { 

public void runTestNGTest(Map<String,String> testngParams) { 

    //Create an instance on TestNG 
    TestNG myTestNG = new TestNG(); 

    //Create an instance of XML Suite and assign a name for it. 
    XmlSuite mySuite = new XmlSuite(); 
    mySuite.setName("MySuite"); 

    //Create an instance of XmlTest and assign a name for it. 
    XmlTest myTest = new XmlTest(mySuite); 
    myTest.setName("MyTest"); 

    //Add any parameters that you want to set to the Test. 
    myTest.setParameters(testngParams); 

    //Create a list which can contain the classes that you want to run. 
    List<XmlClass> myClasses = new ArrayList<XmlClass>(); 
    myClasses.add(new XmlClass("SampleClass")); 

    //Assign that to the XmlTest Object created earlier. 
    myTest.setXmlClasses(myClasses); 

    //Create a list of XmlTests and add the Xmltest you created earlier to it. 
    List<XmlTest> myTests = new ArrayList<XmlTest>(); 
    myTests.add(myTest); 

    //add the list of tests to your Suite. 
    mySuite.setTests(myTests); 

    //Add the suite to the list of suites. 
    List<XmlSuite> mySuites = new ArrayList<XmlSuite>(); 
    mySuites.add(mySuite); 

    //Set the list of Suites to the testNG object you created earlier. 
    myTestNG.setXmlSuites(mySuites); 

    TestListenerAdapter tla = new TestListenerAdapter(); 
    myTestNG.addListener(tla); 

    //invoke run() - this will run your class. 
    myTestNG.run(); 
    } 

public static void main (String args[]) 
{ 
    DynamicTestNG dt = new DynamicTestNG(); 

    //This Map can hold your testng Parameters. 
    Map<String,String> testngParams = new HashMap<String,String>(); 

    testngParams.put("searchtext1", "testdata1"); 
    testngParams.put("searchtext2", "testdata2"); 

    dt.runTestNGTest(testngParams); 
} 

}

そしてSampleClass.java

public class SampleClass { 

private WebDriver driver; 

    @BeforeTest 
    public void setUp() 
    { 
     System.setProperty("webdriver.chrome.driver","C:\\Users\\AK5040691\\Desktop\\IE driver\\chromedriver.exe"); 
     driver = new ChromeDriver(); 

     driver.manage().window().maximize(); 
     driver.navigate().to("http://executeautomation.com/blog/custom-testng-library-for-appium/#more-1562"); 
    } 

    //@Parameters({"searchText1","searchText2"}) 
    //@Test 
    public void searchText(String text1, String text2) 
    { 
     driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 
     driver.findElement(By.className("search-field")).sendKeys(text1); 

     driver.findElement(By.className("search-field")).clear(); 

     driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 
     driver.findElement(By.className("search-field")).sendKeys(text2);  
    } 
} 

そのが実行されていません。ここで間違いを知らせてください。

+0

完全なクラス名で試してみるとここにパッケージ名があります。.. myClasses.add(新しいXmlClass( "SampleClass")); –

+0

あなたは "その実行していない"を精緻化できますか?エラーは何ですか? – user1207289

答えて

1

SampleClassファイルで@Testアノテーションのコメントを解除する必要があります。また、SampleClassがパッケージ内にある場合、このステートメントで絶対パッケージ名+クラス名を指定する必要があります。あなたはのmavenを使用している場合、確実なプラグインが場合に、実行フローに含めることができるように

myClasses.add(new XmlClass("com.some.package.SampleClass")); 

は、一般的にTestNGのクラスは、「テスト」と表示された接尾辞もしくは接頭辞を持っています。

+0

返信いただきありがとうございます –

関連する問題

 関連する問題