0

我正在尝试 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)
  }
  .
  .
  .
}

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

4

2 回答 2

3

FreeMarker 模板看起来像这样:

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

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

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

自由标记

于 2012-06-14T20:56:45.080 回答
0

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

于 2013-03-21T16:25:47.820 回答