如何使用 testng.xml 运行测试文件
Posted
技术标签:
【中文标题】如何使用 testng.xml 运行测试文件【英文标题】:How to run the test files by using the testng.xml 【发布时间】:2021-01-06 16:31:59 【问题描述】:我已经按照上述包结构创建了一个项目,但在运行测试时遇到了问题 通过我手动创建的 testng.xml 文件。
所有测试类都驻留在API包下各自的包中,API包由应用程序的每个模块组成测试类在其各自的模块包中定义的包。
在所附的屏幕截图中,我只提到了从 testng.xml 文件中运行的一个包,并且在运行该文件时它显示为“未找到测试”
下面是 ApprovalGroupManagementApi.class 的代码段,其中测试方法带有适当的 TestNG 注释。
package com.api.approval_group_management;
import com.base.Base;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.javafaker.Faker;
import com.payloads.request.classes.CreatedUserList;
import com.payloads.request.classes.StatusList;
import com.payloads.request.payload.SecCreateApprovalLevel;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import io.restassured.response.Response;
import org.testng.annotations.Test;
import org.testng.asserts.Assertion;
import org.testng.asserts.SoftAssert;
import java.util.ArrayList;
import java.util.List;
import static com.utils.Constant.SEC_CREATE_APPROVAL_LEVEL_URL;
import static io.restassured.RestAssured.given;
public class ApprovalGroupManagementApi extends Base
SoftAssert softAssert = new SoftAssert();
Assertion hardAssert = new Assertion();
@Test(priority = 1, alwaysRun = true, enabled = true)
public void secCreateApprovalLevel()
try
ObjectMapper objectMapper = new ObjectMapper();
SecCreateApprovalLevel secCreateApprovalLevel = new SecCreateApprovalLevel();
StatusList statusList = new StatusList();
CreatedUserList createdUserList = new CreatedUserList();
List<Object> objects = new ArrayList<>();
secCreateApprovalLevel.setName("" + new Faker().name().firstName());
secCreateApprovalLevel.setApprovalLevelAvailable(true);
secCreateApprovalLevel.setStatusList(statusList);
secCreateApprovalLevel.setCreatedUserList(createdUserList);
secCreateApprovalLevel.setPrivilageList(objects);
String approvalGroup = objectMapper.writeValueAsString(secCreateApprovalLevel);
RestAssured.useRelaxedHTTPSValidation();
Response response = given().spec(resourceApiRequestSpecification).log().all()
.contentType(ContentType.JSON)
.when()
.body(approvalGroup)
.post(SEC_CREATE_APPROVAL_LEVEL_URL);
//response code assertion
hardAssert.assertEquals(response.getStatusCode(), 200);
softAssert.assertAll();
catch (Exception e)
System.out.println(e);
【问题讨论】:
【参考方案1】:在testng.xml中将包名改为name="com.api.approval_group_management"
【讨论】:
【参考方案2】:<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="suite 1">
<test name="Regression 1">
<classes>
<class name="test.java.com.api.approval_group_management.ApprovalGroupManagementApi" />
</classes>
</test>
</suite>
请试试这个它可能会帮助你执行 testng 类。 (除此之外还要确保已经安装了testng的插件。)
【讨论】:
您能提供您收到的错误堆栈吗?最初设置可能会有所帮助。 saucelabs.com/resources/articles/…以上是关于如何使用 testng.xml 运行测试文件的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins如何集成运行testng.xml文件的解决方案
Java盲点攻克「TestNG专题」摒弃JUnit单元测试,带你学会使用TestNG测试框架(上篇)