我有一个testNG框架,我被要求通过命令行运行。我已经添加了执行测试的代码,但是命令行执行的一部分是传入要执行的测试类。 Java似乎不喜欢这个。
我的代码:
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
try
{
Class cl = Class.forName(myClass);
testng.setTestClasses(new Class[] { cl.class });
testng.addListener(tla);
testng.run();
}
catch (Exception ex)
{
...
}
变量myClass是传递给Main的参数之一。
我收到“未知类”的“cl.class”代码错误。
这样做的正确方法是什么?
编辑:
实际构建项目时,返回的错误是“错误:找不到符号类cl”。
答案 0 :(得分:5)
问题可能是您将cl.class放在Class数组中。 cl是一个类对象。尝试
testng.setTestClasses(new Class[] { cl });
您可以在此处了解有关Class类的更多信息http://docs.oracle.com/javase/tutorial/reflect/class/classNew.html
答案 1 :(得分:3)
将您的行更改为:
testng.setTestClasses(new Class[] { cl });
语法X.class
是从硬编码的类名中获取Class
对象。在这种情况下,您已经拥有了Class实例,所以只需使用它即可。