我正在开发一个动态生成JUnit测试套件的Eclipse插件。 问题是运行这些测试。 我创建了一个包含一些.java的包,每个包都是从一个简单的String创建的。现在我想从代码中运行那些.java(JUnit测试)。我知道JUnitCore给了我这种可能性,但首先我需要实例化刚刚创建的.java类。
一步一步:
1.使用.java内容创建一个字符串。
String tests = "public class MyTests extends TestCase {";
...
2.使用与String
相同的内容在外部WorkSpace中创建.java3. 实例化那些.java类。
MyTest myTestClass = new MyTest(); ??????????
4. 运行测试套件。
JUnitCore junit = new JUnitCore();
Result result = junit.run(myTestClass);
现在我正处于第3步。这就是我的问题。
示例:此示例包含仅实现一次虚拟测试的TestCase类
String stests = "package test.dqspm;\n\n";
stests += "import junit.framework.TestCase;\n";
stests += "\npublic class MtTests extends TestCase {\n\n";
stests += "\tpublic void test1 (){\n" +
"\t\t" + "assertTrue(true);" + "\n" +
"\t}\n";
stests += "\tpublic static Test suite(){" +
"\t\treturn new TestSuite(MyTests.class);" +
"\t}\n";
stests += "\tpublic static void main (String[] args){" +
"\t\tjunit.textui.TestRunner.run(suite());" +
"\t}\n";
stests += "}\n";
/* This creates a .java file in the workspace of the project that will be tested
* with the stests String as content */
IPackageFragment testPackage; //This is an object with a Java Project Package
testPackage.createCompilationUnit("MyTests.java",stests, true, null);
/* Instantiate .java classes */
¿?¿?¿?¿?
/* Running tests */
JUnitCore junit = new JUnitCore();
Result result = junit.run(MyTests.class);
之后我需要运行MyTests.java并获得结果以显示它们是自定义的。