如何从testng类运行参数xml

如何从testng类运行参数xml,xml,selenium,jar,testng,executable,Xml,Selenium,Jar,Testng,Executable,我目前在Eclipse中有一个TestNG框架,其中有两个TestNG类,其中一个TestNG类的参数是从XML传递的。我通常将此XML作为TestNG来运行testcase。现在,我正在尝试创建一个可执行的jar,但我无法使用它 请提供帮助。您必须创建一个等价于testng.xml的类。该类应该有main方法和在testng.xml中执行的所有操作,您必须在该类中模仿它。这称为使用org.testng.testng类以编程方式运行testng。在此之后,使用eclipse创建一个可执行的jar

我目前在Eclipse中有一个TestNG框架,其中有两个TestNG类,其中一个TestNG类的参数是从XML传递的。我通常将此XML作为TestNG来运行testcase。现在,我正在尝试创建一个可执行的jar,但我无法使用它


请提供帮助。

您必须创建一个等价于testng.xml的类。该类应该有main方法和在testng.xml中执行的所有操作,您必须在该类中模仿它。这称为使用org.testng.testng类以编程方式运行testng。在此之后,使用eclipse创建一个可执行的jar,您必须将这个类指定为包含main方法的类。如果您在这方面需要进一步帮助,请告诉我。

至少我已经成功了。我从Java类调用了参数testng.xml,并使用Java应用程序运行它。创建Java类后,我将项目导出为可运行的JAR文件。现在我也可以从eclipse外部的JAR文件运行测试了

下面是我创建的Java类

import java.util.ArrayList;
import java.util.List;

import org.testng.TestNG;
import org.testng.annotations.Test;
@Test
public class MainTest {
    public static void main(String[] args){
    List<String> file = new ArrayList<String>();
    file.add("D:/Selenium_workspace/Framework/src/Framework.xml");
    TestNG testNG = new TestNG();
    testNG.setTestSuites(file);
    testNG.run();}
}
import java.util.ArrayList;
导入java.util.List;
导入org.testng.testng;
导入org.testng.annotations.Test;
@试验
公共类测试{
公共静态void main(字符串[]args){
列表文件=新的ArrayList();
add(“D:/Selenium_workspace/Framework/src/Framework.xml”);
TestNG TestNG=新的TestNG();
testNG.setTestSuites(文件);
testNG.run();}
}

谢谢大家。

谢谢我创建了一个类,它的main方法与用于传递参数的XML等效。但是当我使用TestNG运行main类(拥有main方法)时,我得到以下消息。org.testng.TestNGException:Method main需要1个参数,但@Test注释中提供了0。我的XML文件名是eg:Framework.XML,其中Suite name=Suite。下面是参数XML文件的格式…..如果这对您有帮助,请接受此作为答案。是的,但我在运行该类时遇到错误。方法main需要1个参数,但@Test注释中提供了0。您可以发布TestNG类。可能您没有向testng提供的测试方法提供参数。xml@Parameters({“excel_path”、“output_path”})公共类MainOne{public static void main(String[]args){XmlSuite suite=new XmlSuite();suite.setName(“suite”);XmlTest test=new XmlTest(suite);test.setName(“suite”);List classes=new ArrayList();classes.add(new XmlClass(“suites”);test.setxmlclass(classes);List suites=new ArrayList();suites.add(suites);TestNG tng=new TestNG();tng.setXmlSuites(suites);tng.run();}