Java 是否可以在Class.forName中使用动态值?
我有一个testNG框架,我被要求通过命令行使其可运行。我已经添加了执行测试的代码,但是部分命令行执行正在传入要执行的测试类。Java似乎不喜欢这样 我的代码:Java 是否可以在Class.forName中使用动态值?,java,dynamic,testng,Java,Dynamic,Testng,我有一个testNG框架,我被要求通过命令行使其可运行。我已经添加了执行测试的代码,但是部分命令行执行正在传入要执行的测试类。Java似乎不喜欢这样 我的代码: TestListenerAdapter tla = new TestListenerAdapter(); TestNG testng = new TestNG(); try { Class cl = Class.forName(myClass); testng.setTe
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。问题可能是您正在将cl.class放入类数组中。cl是一个类对象。试一试
testng.setTestClasses(new Class[] { cl });
您可以在此处阅读有关类的更多信息问题可能是您正在将cl.Class放入类数组中。cl是一个类对象。试一试
testng.setTestClasses(new Class[] { cl });
您可以在此处阅读有关该课程的更多信息将行更改为:
testng.setTestClassesnew类[]{cl}
语法X.class是从硬编码的类名中获取类对象。在这种情况下,您已经有了类实例,所以只需使用它。将行更改为:
testng.setTestClassesnew类[]{cl}
语法X.class是从硬编码的类名中获取类对象。在本例中,您手头已经有了类实例,所以只需使用它。是否要传递完全限定的路径名?i、 e.com.example.testNGapp.ClassToBeTestedI甚至无法编译代码。这不是运行时错误。@Jason myClass的类型是什么?它应该是一个字符串。您是否要传递完全限定的路径名?i、 e.com.example.testNGapp.ClassToBeTestedI甚至无法编译代码。这不是运行时错误。@Jason myClass的类型是什么?这应该是一个严重的问题谢谢,那是我的问题。谢谢,那是我的问题。