【问题标题】:How to run Method1 present in 100 classes in package using testng.xml?如何使用 testng.xml 运行包中 100 个类中的 Method1?
【发布时间】:2019-02-25 03:20:20
【问题描述】:

我必须在结构看起来像这样的包中运行 Method1

Package - Regression
     |--class1
         |-method1
         |-method2
     |--class2
         |-method1
         |-method2
     |--class3 
     .
     .
     and so on goes to classN where N can be from 100 to 2000.

现在我需要编写 testNG.xml 是这样一种方式,即所有类中存在的 method1 在包级别执行

或者将来如果我需要在包级别执行method1和method2?

提前感谢您的解决方案

【问题讨论】:

    标签: automated-tests testng integration-testing


    【解决方案1】:

    您可以使用 beanshell 方法选择器非常轻松地做到这一点。

    这是一个示例

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="54859054_suite" verbose="2">
      <method-selectors>
        <method-selector>
          <script language="beanshell">
            <![CDATA[
            whatMethod = System.getProperty("methodToExecute", "testMethod1");
            method.getName().equals(whatMethod);
            ]]>
          </script>
        </method-selector>
      </method-selectors>
      <test name="54859054_test">
        <packages>
          <package name="com.rationaleemotions.stackoverflow.qn54859054"/>
        </packages>
      </test>
    </suite>
    

    上面的beanshell默认会执行名为“testMethod1”的方法(因为它是我们为JVM参数methodToExecute提供的默认值。

    如果您想在运行时更改它的值,您只需通过 JVM 参数传递一个新值。例如,-DmethodToExecute=testMethod2

    【讨论】:

    • 这个 beanshell 适用于高于 testng12 的更高版本的测试
    • 不确定您指的是哪个版本。那是您指的testng Eclipse插件版本吗?哦,顺便说一句,TestNG 的最新发布版本是 7.0.0-beta3
    猜你喜欢
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    相关资源
    最近更新 更多