如何配置我的testng IReporter接受参数

时间:2014-09-20 00:48:36

标签: groovy testng

IReporter是一个具有单void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory)方法的接口。我想使记者的行为可配置,以便我可以在命令行上运行时将选项传递给它。该文档说明了如何在命令行上将参数传递给报告者:

  

-reporter自定义报告侦听器的扩展配置。与-listener选项类似,只是它允许   报告器实例上的JavaBeans样式属性的配置。   示例:-reporter   com.test.MyReporter:methodFilter = insert ,enableFiltering = true你   可以有多少出现这个选项,每个记者都有一个   需要补充。

所以看来我应该可以用-reporter com.my.reporter:key1=value1,key2=value2调用testng 但我在哪里获得传入的值。

我查看了testng提供的XMLReporter,它有一个private final XMLReporterConfig config = new XMLReporterConfig();行,但我无法知道配置是如何填充的。

1 个答案:

答案 0 :(得分:1)

魔术,它是如何完成的:-)它似乎在你的类上查找实现具有相同名称的IReporter的实例变量。它似乎需要比Objectdef更强的类型。这是一个例子。

class MyReporter implements IReporter {
    int foo; //<-- populated when instantiated

    @Override
    void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
        println "foo = ${foo}"
    }
}

然后执行它:

testng ... -reporter 'full.path.to.MyReporter:foo=42'