需要在testng.xml中调用两次相同的类

时间:2018-04-10 08:03:18

标签: java selenium testng

sudo docker run -d -p 9999:8888 -v /opt/docker/jupyter/home/jovyan/work:/home/jovyan/work -e "SPARK_OPTS=--driver-java-options=-Xms4096M --driver-java-options=-Xmx10240M --driver-java-options=-Dlog4j.logLevel=info" jupyter/all-spark-notebook

使用testing.xml配置上述测试时,会抛出throw.java.lang.IllegalStateException:循环依赖:Login.Method3

有没有办法只从tests.xml调用同一个类两次?

1 个答案:

答案 0 :(得分:0)

的集合。
将有方法(无论您是想包含还是排除这些都取决于您。)

在你的情况下,似乎并不能说服你两次定义课程。

而是在<class name="Login">

下的相同方法标记中调用method3
<class name="Login">
   <methods>
       <include name="Method1"/>
       <include name="Method2"/>
       <include name="Method3"/>    
   </methods>
</class>   

有没有办法只从tests.xml调用同一个类两次? - 在  这种情况,没有必要。

更新

如果你的场景是这样的,你想在执行logout类的一些测试方法之后运行testMethod3,那么你必须使用TestNG提供的依赖项。

public class Logout {
    @Test(groups={"logout-test-case"})
    public void testLogout1(){
        System.out.println("---Test Log----");
    }
}  

现在您的登录类testMethod3应如下所示:

public class login{

        @Test
        public void testMethod1(){
        //some steps to perform test method1
        }

         @Test
        public void testMethod2(){
        //some steps to perform test method2
        }

        @Test(dependsOnGroups={"logout-test-case"})
        public void testLogout3(){
            System.out.println("---Test method 3----");
        }
    }