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();
行,但我无法知道配置是如何填充的。
答案 0 :(得分:1)
魔术,它是如何完成的:-)它似乎在你的类上查找实现具有相同名称的IReporter的实例变量。它似乎需要比Object
或def
更强的类型。这是一个例子。
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'