我正在尝试构建一个动态Web项目,用户可以在其中练习Java代码。
我在用code
文件.java
编写了compile
代码&使用error messages
获取Java Compile API
。
现在,我需要对JUnit 1.4 Compatible
运行code
测试。
我研究了它,发现了parameterized junit testing
之类的东西。但我对如何做到的看法还不清楚。
更新
这(http://codingbat.com/prob/p171896)是我试图实施的确切内容。
答案 0 :(得分:0)
我通过以下步骤解决了这个问题:
编译JUnit TestClass和ClassToTest
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int compilerResult = compiler.run(null, null, null,"/path/to/TestClass.java", "/path/to/ClassToTest.java");
System.out.println("Compiler result code: " + compilerResult);
将已编译的类加载到类加载器
中File dir = new File("/path/to/class/files/");
URL url = dir.toURI().toURL();
URL[] urls = {url};
ClassLoader classLoader = new URLClassLoader(urls);
运行测试(确保将junit添加为项目的依赖项)
Class<?> junitTest = Class.forName("TestClass", true, classLoader);
Result result = junit.run(junitTest);
编辑:如果您不需要JUnit测试是动态的,您可以跳过这些测试的编译并在此处添加它们:junit.run(JunitTest.class)