Selenium中pom.xml显示叉号,运行TestRunner触发org.testng.TestNGException
异常信息翻译
org.testng.TestNGException:
无法在类路径中找到类:testrunner.TestRunner
at org.testng.xml.XmlClass.loadClass(XmlClass.java:81)
at org.testng.xml.XmlClass.init(XmlClass.java:73)
at org.testng.xml.XmlClass.(XmlClass.java:59)
at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:559)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.testng.xml.XMLParser.parse(XMLParser.java:39)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:16)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:9)
at org.testng.xml.Parser.parse(Parser.java:172)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:300)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:103)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:137)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:58)
分步解决步骤
1. 修复pom.xml的叉号问题
pom.xml显示叉号多是语法错误、依赖缺失或配置异常导致:
- 打开pom.xml,定位红色波浪线位置,修正XML语法问题(比如标签未闭合、依赖坐标拼写错误)
- 执行Maven命令:
mvn clean install -U,强制更新依赖并重新构建项目 - 在IDE中右键项目 → Maven → Reimport,重新导入Maven配置
- 检查IDE右下角的依赖下载提示,点击下载缺失的依赖包
2. 解决TestNG找不到类的核心问题
异常本质是TestNG在类路径中找不到指定类,按以下方向排查:
- 确认类路径与包结构:确保
TestRunner类的包名是testrunner,且文件存放在Maven标准测试目录src/test/java/testrunner/TestRunner.java下 - 检查TestNG XML配置:如果通过XML运行测试,确认配置中
<class name="testrunner.TestRunner"/>的类名、包名拼写完全正确(Java大小写敏感) - 重新编译测试类:执行
mvn compile test-compile,确保测试类被编译到target/test-classes目录 - 核对IDE运行配置:直接在IDE运行时,确认运行配置的类路径包含
target/test-classes,且选中的是正确的TestRunner类 - 排查依赖冲突:用
mvn dependency:tree查看依赖树,确认TestNG版本无冲突,必要时在pom.xml中排除冲突的TestNG依赖
3. 其他辅助修复动作
- 清理IDE缓存:IntelliJ IDEA执行
File → Invalidate Caches... → Invalidate and Restart;Eclipse执行Project → Clean - 确认JDK兼容性:TestNG 7.x及以上版本需要JDK 8及以上,确保项目JDK版本符合要求
内容的提问来源于stack exchange,提问作者Swapnil Khot

