spring - 尝试从命令行 TestNG 运行 Spring Boot 应用程序:Application Thrown Exception as AbstractTestNGSpringContextTests class not found
问题描述
我的 Testng.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng 1.0.dtd">
<suite name="TESTCASES">
<test name="Check Main Method">
<classes>
<class name="com.testcase.test1/>
</classes>
</test>
</suite>
Testng 命令行命令:
java -cp "c:/project/test/lib/*;c:/project/test/target/test-classes/" org.testng.TestNG testng.xml
Cmd 控制台上的异常:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/test/context/testng/AbstractTestNGSpringContextTests
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.testng.internal.ClassHelper.forName(ClassHelper.java:94)
at org.testng.xml.XmlClass.loadClass(XmlClass.java:72)
at org.testng.xml.XmlClass.init(XmlClass.java:67)
at org.testng.xml.XmlClass.<init>(XmlClass.java:54)
at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:576)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:766)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1339)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
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:164)
at org.testng.xml.Parser.parse(Parser.java:250)
at org.testng.TestNG.parseSuite(TestNG.java:324)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:376)
at org.testng.TestNG.initializeEverything(TestNG.java:1011)
at org.testng.TestNG.run(TestNG.java:1023)
at org.testng.TestNG.privateMain(TestNG.java:1365)
at org.testng.TestNG.main(TestNG.java:1329)
Caused by: java.lang.ClassNotFoundException: org.springframework.test.context.testng.AbstractTestNGSpringContextTests
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
我需要从命令行执行我的 testng.xml 文件。
文件夹结构:
项目
- 主要的
- com.package.one [包含一些连接Mongo的方法]
- com.package.two [包含一些连接 Postgres 的方法]
- 测试
- com.package.setonetest [从 com.package.one 自动装配一些方法]
- com.package.settwotest [从 com.package.two 自动装配一些方法]
- testng.xml
由于某些限制,我无法发布代码/图片。
任何帮助,将不胜感激。
谢谢
解决方案
推荐阅读
- android - 无法让 React Native 在 Ubuntu 上运行
- opengl - Cinder 上的低不透明度背景/填充导致屏幕闪烁红色
- pointers - 为什么 Win32 API 系统调用中使用的缓冲区强制转换为 [1<<20]
大批? - reactjs - 如何在 browserHistory.push(path, [state]) 中传递状态
- c++ - Qt - 有没有办法将图形项目转换为像素图?
- node.js - 试图让 Supertest 将正文发送到 https 帖子?
- c - 如何将 SHA256 摘要存储在 C 中的变量中
- java - 此 Java 代码中的错误在哪里?
- dart - Flutter 从右到左 rtl 包装多行文本隐藏第一个字母
- excel - 细胞计数公式