在TestNG配置的不同部分中指定不同的侦听器会产生什么后果?

时间:2012-02-22 19:46:03

标签: ant testng

问题描述:

安装程序正在使用TestNG目标执行Ant构建脚本,然后加载testng.xml文件。可以在Ant filetestng.xml中指定听众。

出现的问题如下:

  1. 两种方式都会得到支持吗?是否在测试执行期间使用了两个配置位置中指定的所有侦听器?
  2. 是否会优先考虑任何听众?如果是,怎么样?
  3. 样本设置:

    Ant文件:

    <project>
    <property name="classes.dir" path="<my_classes_dir>" />
    <property name="test.dir" path="<my_test_dir>" />
    <target name="run-test">
        <testng useDefaultListeners="false"
              listeners="org.testng.reporters.EmailableReporter, org.testng.reporters.XMLReporter, com.example.MyCustomReporter">
            <classpath>
              <path path="${classes.dir}" />
            </classpath>
          <xmlfileset dir="${test.dir}" includes="testng.xml" />
        </testng>
    </target>
    </project>
    

    的testng.xml:

    <suite name="MyTestSuite">
        <listeners>
            <listener class-name="com.example.MyListener" />
            <listener class-name="org.testng.reporters.FailedReporter" />
        </listeners>
        <test name="MyTest1">
            <classes>
                <class name="com.example.MyTest1" />
            </classes>
        </test>
    </suite>
    

    背景

    我必须支持使用类似于上述设置的现有项目。 Ant构建文件禁用默认报告者。在不触及Ant构建文件的情况下,我想为testng.xml中的测试指定其他报告监听器(FailedReporter和/或任何自定义监听器)。

1 个答案:

答案 0 :(得分:1)

我相信所有的监听器都应该在你的构建文件和testng.xml中运行。 testng.xml监听器将被执行第二个。 如果构建文件和testng.xml中都列出了相同的侦听器,则会执行两次。

这是基于我对Maven的经验,但我想,与蚂蚁它应该是一样的。 此外,如果两者都实现了同一组接口,则无法保证testng.xml中指定的侦听器顺序。

希望它有所帮助。