我正在研究Selenium项目。我正在以编程方式运行TestNG,因为我需要main方法,因为我正在通过包含所有依赖项的maven-shade插件创建.jar文件。
public class EDITestApp {
public static void main(String[] args) {
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
Class[] classes = new Class[]{
LoginTest.class,
ContractorsTest.class,
ActiveContractorsTest.class,
InvitedContractorsTest.class,
CancelledContractorsTest.class,
MainPageTest.class
};
testng.setTestClasses(classes);
testng.addListener(tla);
testng.run();
}
我想让我的.jar文件与我的所有测试一起运行,命令行参数包含,例如,设置将运行测试的浏览器的参数。是否可以从我的测试类中获取此参数,该测试类使用特定浏览器创建驱动程序实例,或者我需要在main方法中创建动态testng.xml并在.xml文件中设置属性?
答案 0 :(得分:1)
您可以将cmd参数作为测试的参数传递。我检查了TestNG类API,它没有为您提供这样的功能。但是有一个类可以做 - XmlSuite()。您将所有类添加到XmlSuite,然后使用setXmlSuites()将该套件添加到TestNG。 XmlSuite允许使用setParameters()定义参数。
示例代码 -
XmlSuite suite = new XmlSuite();
suite.setParameters(suiteParameters - you can use a map(key,value));
classes = new ArrayList<XmlClass>();
classes.add(new XmlClass(fullClassName));
--here add all the required test class to classes object.
test.setXmlClasses(classes);
List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();
如果您需要更多帮助,请与我们联系。