使用Rest Assured编写GET请求时遇TestNG No tests found错误求助
排查TestNG "No tests found. Nothing was run" 问题的具体步骤
1. 校验测试类与方法的基础规范
- 测试类必须是public访问权限,不能是private/protected
- 测试方法必须添加
org.testng.annotations.Test注解,别误导入JUnit的@Test包 - 测试方法需满足:public修饰、返回值为void、无入参(除非配合
@Parameters注解使用)
正确示例代码:import org.testng.annotations.Test; import io.restassured.RestAssured; public class APITest { @Test public void testGetRequest() { RestAssured.given() .when() .get("https://api.example.com/data") .then() .statusCode(200); } }
2. 检查TestNG运行配置
- IDE(IntelliJ/Eclipse)运行场景:
- 确认运行配置选择的是TestNG而非JUnit
- 检查配置中指定的测试类/包范围是否正确,避免选中空目录或无关类
- 若使用xml配置文件,确保文件正确包含目标测试类:
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="API Test Suite"> <test name="GET Request Test"> <classes> <class name="com.yourpackage.APITest"/> </classes> </test> </suite>
- 命令行(Maven/Gradle)运行场景:
- Maven需校验surefire插件配置,确保绑定TestNG并指定正确的测试范围:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.1.2</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> </plugins> </build>
- Maven需校验surefire插件配置,确保绑定TestNG并指定正确的测试范围:
3. 排查依赖冲突或版本兼容问题
- 确认Rest Assured与TestNG版本匹配:比如Rest Assured 5.x系列建议搭配TestNG 7.x版本
- 检查依赖树是否存在多版本TestNG冲突:
- Maven执行:
mvn dependency:tree | grep testng - Gradle执行:
gradle dependencies | grep testng
若发现冲突,排除低版本或不兼容的TestNG依赖
- Maven执行:
4. 校验IDE的TestNG插件状态
- Eclipse:确认TestNG插件已安装且版本与项目jar包匹配,可尝试重装或更新插件
- IntelliJ:通过
File > Settings > Plugins确认TestNG插件已启用,必要时重启IDE
5. 检查测试类存放路径
- Maven/Gradle项目中,测试类必须放在
src/test/java目录下,而非src/main/java - 非Maven项目,需在IDE中将测试目录标记为Test Sources Root
内容的提问来源于stack exchange,提问作者puneet sahil
相关产品推荐
相关产品推荐

