使用maven surefire插件的自定义记者

时间:2012-08-06 20:55:56

标签: maven testng surefire

我正在尝试使用maven surefire插件为TestNG使用自定义报告器。我已经有了一个自定义监听器,这似乎得到了解决。但是,看起来根本不使用自定义报告器:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <testFailureIgnore>false</testFailureIgnore>
        <properties>
            <property>
                <name>listener</name>
                <value>com.mystuff.test.TestNGListener</value>
            </property>
            <property>
                <name>reporter</name>
                <value>com.mystuff.test.MyEmailableReporter</value>
            </property>
        </properties>
    </configuration>
</plugin>

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:4)

我想出来了。看起来以下根本不起作用:

<property>
    <name>reporter</name>
    <value>com.mystuff.test.MyEmailableReporter</value>
</property>

尽管有相反的文件。在TestNG类中,似乎有一个名为TestNG#addListener(IReporter listener)的方法,与其名称相反,接受实现IReporter的报告。 Maven Surefire(v2.12.1)调用此方法来添加侦听器和报告。但是,它不会在名为reporter的属性下查找报告。相反,您必须将自定义报告者添加到listener属性:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <testFailureIgnore>false</testFailureIgnore>
        <properties>
            <property>
                <name>listener</name>
                <value>com.mystuff.test.TestNGListener,com.mystuff.test.MyEmailableReporter</value>
            </property>
        </properties>
    </configuration>
</plugin>

不太直观。