生成JAVA文件并在运行时使用它们

时间:2012-06-14 20:35:05

标签: java testing code-generation testng

我正在尝试以下内容,由Cedric Beust在其他一些帖子中提出。

  

您可以自己做这个预测试任务:实现代码生成器   以XML格式获取信息,获取相应的Java   源文件并生成包含所有注释的TestNG源文件   放在正确的位置。然后在该文件上运行TestNG。

我对代码生成毫无头绪。有人能引导我朝正确的方向发展吗?一些简单的例子会很棒。

更新:这是我想要生成的模板。

public class <tobeReadFromConfigFile>
{
  @Test(groups="to be read from config file")
  public void <tobereadfromconfigfile>{
     //to be read from config file(Name of function to call)
     //to be read from config file(Name of function to call)
     //to be read from config file(Name of function to call)
  }
  .
  .
  .
}

函数内部的代码只是函数调用,必须从配置文件中读取和复制。

2 个答案:

答案 0 :(得分:3)

FreeMarker模板看起来像这样:

public class ${className} {
    @Test(groups="${testGroups}")
    public void ${testMethodName}() {
        <#list methods as m>
        ${m}
        </#list>   
    }
}

它将从一个上下文填充,本质上是一个带有classNametestGroups等条目的哈希映射,可以从XML文件中读取。 methods将是Collection(如列表),也可以从XML文件中读取。

当然还有许多其他的模板库;这只是一个例子。

FreeMarker

答案 1 :(得分:0)

我编写了一个使用freemarker模板的eclipse插件,并提供了来自org.eclipse.jdt.core的命名java类的上下文作为ICompilationUnit。您可以在https://github.com/karajdaar/templator

查看