猿问

TestNG:测试用例被忽略

我正在使用TestNG框架为我的应用程序编写测试用例Android。我正在使用Appium测试工具。

为此,我定义了以下文件:

  • pom.xml文件 - 依赖项所需

  • 一班BaseTest.java_

  • 两个儿童班级从BaseTest.java

  • testng.xml文件 - 定义其中运行的测试类。

为了更好地理解我的问题发布类和 xml 文件。

这是pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>


    <groupId>com.example.testing</groupId>

    <artifactId>android-appium</artifactId>

    <version>1.0-SNAPSHOT</version>

    <build>

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-compiler-plugin</artifactId>

                <configuration>

                    <source>11</source>

                    <target>11</target>

                </configuration>

            </plugin>

        </plugins>

    </build>


    <dependencies>


        <dependency>

            <groupId>org.testng</groupId>

            <artifactId>testng</artifactId>

            <version>6.14.3</version>

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>io.appium</groupId>

            <artifactId>java-client</artifactId>

            <version>7.1.0</version>

            <scope>test</scope>

        </dependency>

    </dependencies>


</project>

这是BaseTest.java班级


import org.testng.annotations.AfterSuite;

import org.testng.annotations.BeforeSuite;


public class BaseTest {



    @BeforeSuite

    public void setUp()

    {

    }


    @AfterSuite

    public void tearDown()

    {


    }

}

splashScreen_2()当我使用 appium 工具运行此代码时,在类的第二个函数上FirstTest.java出现错误“测试被忽略”并且它无法正常运行。secondScnario_2但是,当我在文件中取消注释testng.xml并注释 FirstScenario_1 时,我的测试用例会正常运行(正如我在注释中提到的那样)并且 Android 应用程序会正确地一一执行每个函数。

但我想<test> </test>执行testng.xml.

如果我secondScnario_2testng.xml文件中使用,那么我需要为每个场景提供单独的测试名称。我只想使用一个测试名称。所以当我FirstScenario_1在文件中使用时,为什么这里会发生忽略测试testng.xml的错误 ?


慕婉清6462132
浏览 148回答 1
1回答

慕斯王

根据您在评论中所描述的内容,我认为您希望通过在一个测试中定义所有类来按顺序运行所有内容。然后,您应该删除优先级和组,并使用此 xml 运行它preserve-order="true"。这应该按照 xml 中定义的顺序运行测试<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"><suite name="androidapp" >&nbsp; &nbsp; <test name="FirstScenario_1" preserve-order="true">&nbsp; &nbsp; &nbsp; &nbsp; <classes>&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<class name="scenarios.FirstTest" >&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<methods>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <include name="setUpDriver" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <include name="splashScreen_1" />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <include name="splashScreen_2" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</methods>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </class>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <class name="scenarios.SecondTest">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<methods>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <include name="logInScreen_1" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <include name="logInScreen_2" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</methods>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </class>&nbsp; &nbsp; &nbsp; &nbsp; </classes>&nbsp; &nbsp; </test></suite>您还可以按照@dependsOnMethods您想要的顺序运行方法。看看这个。那里描述的顺序也应该可以帮助您解决这个问题
随时随地看视频慕课网APP

相关分类

Java
我要回答