0

我正在尝试在 testng.xml 中对几组进行分组,但我想为套件下的所有测试标签共同声明它,当我将 testng.xml 作为 TestNG Suite 运行时,没有运行测试

  • 尝试从“组”标签中删除“定义”标签,然后我可以运行@Test
  • 没有删除 name="all" 的定义标签,但没有在运行标签中使用它,

    然后,我也可以运行@Test

            <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="TestNgPractise">
    <groups>
    <define name="all">
    <include name="smoke"/>
    <include name="sanity"/>
    <include name="regression"/>
    </define>
    <run>
    <include name="all"/>     
    </run>
    </groups>
    <test thread-count="5" name="GroupingTest-PreloginPage">
    <classes>
    <class name="com.qa.tests.PreloginPageTest"/>
    </classes>
    </test>  
    <test thread-count="5" name="GroupingTest-LoginPage">
    <classes>
    <class name="com.qa.tests.LoginPageTest"/>
    </classes>
    </test> 
    </suite> <!-- TestNgPractise -->
    

预期:当我在我的 testng.xml 中提到的所有共同提及时,我希望执行所有 @Test

实际:没有@Test 正在执行

Eclipse 中的 O/P: 在此处输入图像描述

PreLoginPageTest.java

public class PreloginPageTest {
@Test(groups={"sanity"})
public void preloginPageTest(){
    System.out.println("PreloginPageTest");
}
@Test(groups={"sanity","regression"})
public void validateLogo(){
    System.out.println("Logo present");
}
@Test(groups={"sanity","regression"})
public void validateUrl(){
    System.out.println("Correct URL present");
}
@Test(groups={"sanity","regression"})
public void validateTabs(){
    System.out.println("all four tabs present");
}
@Test(groups="sanity")
public void validateHeaderFooter(){
    System.out.println("Header Footer Present");
}
}

LoginPageTest.java

 public class LoginPageTest {

    @Test(groups={"sanity"})
    public void loginPageTest(){
        System.out.println("LoginPageTest");
    }


    @Test(groups={"regression"})
    public void valiadteUsernameField(){
        System.out.println("User name field present");
    }

    @Test(groups={"regression"})
    public void valiadtePasswordField(){
        System.out.println("Password field present");
    }

    @Test(groups={"regression"})
    public void validateLoginBUttonField(){
        System.out.println("Login button present");
    }

    @Test(groups={"smoke"})
    public void validateForgetPassowrdField(){
        System.out.println("forgot passowrd field present");
    }

    @Test(groups={"smoke"})
    public void validateRememberPasswordChrckboxField(){
        System.out.println("Remember passowrd checkbox present");
    }

    }
4

1 回答 1

0

testng.xml对我来说这两个测试都很好。套件级别的组返回应用于两个测试,并且smoke两个测试类的组都运行

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Default suite" thread-count="5" group-by-instances="false" verbose="1" allow-return-values="false" parallel="false" data-provider-thread-count="10" junit="false" configfailurepolicy="skip" preserve-order="true" skipfailedinvocationcounts="false">

<method-selectors>
    <method-selector>
      <script language="beanshell"><![CDATA[
        groups.containsKey("smoke") ;
        ]]>
        </script>
     </method-selector>
    </method-selectors>

<test verbose="2"  name="GroupingTest-PreloginPage">

<classes>
                <class name="firsttestngpackage.PreloginPageTest">

             </class>
        </classes>
</test>  
<test verbose="2"  name="GroupingTest-LoginPage">
<classes>
                <class name="firsttestngpackage.LoginPageTest">

             </class>
        </classes>
</test> 

</suite> 
于 2019-09-11T13:47:01.673 回答