从Java Hello World代码生成的TestNG.xml是否有效?我遗漏了什么?
问题解答
1. 这个TestNG XML是否有效?
语法上是有效的,它完全符合TestNG的DTD规范,结构完整无语法错误,但这是一个空测试套件,没有任何实际要执行的测试内容,运行它不会执行任何代码。
2. 为什么XML里没有关联"Hello!"相关内容?
你的Java类是普通的带main方法的类,不是TestNG认可的测试类。TestNG只会识别带有@Test注解的方法作为测试用例,main方法是Java程序的入口,不属于TestNG的测试元素范畴。因此执行"Convert to TestNG"时,插件找不到可关联的测试方法/类,生成的XML自然没有相关配置。
3. 遗漏的配置和修正步骤
你需要把普通Java类改成TestNG测试类,具体步骤如下:
- 修改Java代码:导入TestNG的
@Test注解,把输出逻辑放到带注解的方法中(无需保留main方法):
package testMy; import org.testng.annotations.Test; public class testMy { @Test public void sayHello() { System.out.println("Hello!"); } }
- 重新生成TestNG XML:再次右键项目选择"Convert to TestNG",此时插件会识别到带有
@Test注解的方法,生成的XML会自动包含该测试类的配置,示例如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test thread-count="5" name="Test"> <classes> <class name="testMy.testMy"/> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
- 确保TestNG依赖正确:如果是Maven/Gradle项目,需在依赖中添加TestNG;如果是普通Java项目,要通过Eclipse的
Build Path添加TestNG库,保证@Test注解能被识别。
内容的提问来源于stack exchange,提问作者JustToKnow
相关产品推荐
相关产品推荐

