运行动态创建的JUnit测试

时间:2013-04-19 23:55:25

标签: testing dynamic junit

我正在开发一个动态生成JUnit测试套件的Eclipse插件。 问题是运行这些测试。 我创建了一个包含一些.java的包,每个包都是从一个简单的String创建的。现在我想从代码中运行那些.java(JUnit测试)。我知道JUnitCore给了我这种可能性,但首先我需要实例化刚刚创建的.java类。

一步一步:

1.使用.java内容创建一个字符串。

  String tests = "public class MyTests extends TestCase {";
  ...

2.使用与String

相同的内容在外部WorkSpace中创建.java

3. 实例化那些.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并获得结果以显示它们是自定义的。

0 个答案:

没有答案