是否可以将java.io.FIle传递给JUnitCore.runClasses()呢
我正在尝试使用JUnitCore.runClasses(),我可以使用以下代码让它运行是否可以将java.io.FIle传递给JUnitCore.runClasses()呢,java,junit,Java,Junit,我正在尝试使用JUnitCore.runClasses(),我可以使用以下代码让它运行 JUnitCore.runClasses(testClass.class); 但我很好奇,因为runClasses()可以接受任意数量的参数,是否可以使用类似以下的代码 Class c = testClass.class; JUnitCore.runClasses(c); 或 List c=newarraylist{test1.class,test2.class,test3.class}; runClas
JUnitCore.runClasses(testClass.class);
但我很好奇,因为runClasses()可以接受任意数量的参数,是否可以使用类似以下的代码
Class c = testClass.class;
JUnitCore.runClasses(c);
或
List c=newarraylist{test1.class,test2.class,test3.class};
runClasses(c);
我问这个问题的时候,就好像您试图将java.io.File类型传递给JUnitCore.runClasses()一样,您会得到以下错误
no suitable method found for runClasses(java.io.File)
method org.junit.runner.JUnitCore.runClasses(java.lang.Class<?>...) is not applicable
(argument type java.io.File does not conform to vararg element type java.lang.Class<?>)
method org.junit.runner.JUnitCore.runClasses(org.junit.runner.Computer,java.lang.Class<?>...) is not applicable
(actual argument java.io.File cannot be converted to org.junit.runner.Computer by method invocation conversion)
找不到适合运行类的方法(java.io.File)
方法org.junit.runner.JUnitCore.runClasses(java.lang.Class…)不适用
(参数类型java.io.File不符合vararg元素类型java.lang.Class)
方法org.junit.runner.JUnitCore.runClasses(org.junit.runner.Computer,java.lang.Class…)不适用
(实际参数java.io.File无法通过方法调用转换转换为org.junit.runner.Computer)
我假设您正在尝试执行以下操作:
您有一个包含要使用JUnitCore运行的java类的文件
要完成此任务,您必须:
File file = new File("path to your file");
File dir = file.getParentFile();
URL url = new URL("file://" + dir.getAbsolutePath());
URLClassLoader classLoader = new URLClassLoader(new URL[]{url});
Class<?> clazz = classLoader.findClass("ClassName");
JUnitCore.runClasses(clazz);
File File=新文件(“文件路径”);
File dir=File.getParentFile();
URL=新URL(“文件:/”+dir.getAbsolutePath());
URLClassLoader classLoader=新URLClassLoader(新URL[]{URL});
Class clazz=classLoader.findClass(“ClassName”);
JUnitCore.runClasses(clazz);
该示例仅在类没有包的情况下有效。您可以编写自己的类装入器来控制类装入过程。请参阅以了解此类加载器的工作原理。对于编写自定义类加载器,您可以参考。您还可以创建一个包含所有TestClass的TestSuite类。然后你可以打电话过来
JunitCore.runClasses(TestSuite.class);
TestSuite类包含测试类的列表,例如
@RunWith(Suite.class)
@Suite.SuiteClasses({
Test1.class,
Test2.class
})
如何将类实例分配给File类型的变量?你想达到什么目的?我只是在脑子里胡思乱想真的。。。我假设您可以将文件设置为.class文件,不是吗?不,java.lang.class不可分配给java.io.file.Yes,但当您尝试将其传递给方法时,java不会将其视为类对象。就像一个恰好有扩展名.classIs的文件一样,有没有办法做到这一点?是的,这正是我想要做的。。。我要试一试,所以
@RunWith(Suite.class)
@Suite.SuiteClasses({
Test1.class,
Test2.class
})