在TestNG

时间:2016-11-14 06:33:27

标签: java testng testng-eclipse

我有以下代码段 -

第1类: - DependencyOne.java

public class DependencyOne 
{
   @Test(groups = "xxx")
   public void parentTestMethodOne()
   {
        System.out.println("parent Test Method One");
   }
   @Test(groups = "vizac")
  public void parentTestMethodTwo()
  {
      System.out.println("parent Test Method Two");
  }
  @Test(groups = "xxx")
  public void parentTestMethodThree()
  {
      System.out.println("parent Test Method Three");
  } 
}

而另一个班级是

第2课: - DependencyTwo.java

public class DependencyTwo 
{

   @Test(dependsOnMethods = "testMethodThree")
   public void testMethodOne()
   {
      System.out.println("Test Method One");
   }
   @Test(dependsOnGroups = "xxx")
   public void testMethodTwo()
  {
     System.out.println("Test Method Two");
  }
    @Test(dependsOnMethods = "testMethodTwo")
    public void testMethodThree()
    {
       System.out.println("Test Method Three");
    }
}

当我执行 DependencyTwo 时,它会给出以下输出 -

  • 父母测试方法一
  • 父级测试方法三
  • 父级测试方法二
  • 测试方法二
  • 测试方法三
  • 测试方法一

    我期待的是 -

  • 父测试方法一
  • 父级测试方法三
  • 测试方法二
  • 测试方法三
  • 测试方法一

    任何人都可以解释一下为什么它会发生,即使我只访问其他类的指定组的测试方法,请建议我如何才能访问其他类中的组指定测试方法。

    enter image description here

  • 1 个答案:

    答案 0 :(得分:2)

    到目前为止我知道的另一种选择

    只需创建一个testing.xml文件,您可以在其中管理要包含/排除的方法 -

    在xml文件中使用以下内容 -

    <test name="MyTest">
        <groups>
            <run>
                <exclude name="vizac"/>
            </run>
        </groups>
        <classes>
            <class name="com.flipkart.DependencyOne" />
            <class name="com.flipkart.DependencyTwo" />
        </classes>
    </test>