簡體   English   中英

在Eclipse中測試NG測試失敗,並顯示錯誤NoClassDefFoundError:org / springframework / test / context / testng / AbstractTestNGSpringContextTests

[英]Test NG test in eclipse fails with the error NoClassDefFoundError: org/springframework/test/context/testng/AbstractTestNGSpringContextTests

 java.lang.NoClassDefFoundError: org/springframework/test/context/testng/AbstractTestNGSpringContextTests
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1012)
at java.lang.ClassLoader.loadClass(ClassLoader.java:413)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.testng.internal.ClassHelper.forName(ClassHelper.java:96)
at org.testng.xml.XmlClass.loadClass(XmlClass.java:78)
at org.testng.xml.XmlClass.init(XmlClass.java:73)
at org.testng.xml.XmlClass.<init>(XmlClass.java:59)
at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:544)
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:1344)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2787)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
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:17)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:10)
at org.testng.xml.Parser.parse(Parser.java:168)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:311)
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)

異常的堆棧跟蹤如上所示

測試類是使用maven進行編譯和依賴管理的項目的一部分。 我看到Eclipse中的“參考庫”部分包含了項目的所有依賴關系。 classpath條目包含spring依賴項。 但是,在使用Eclipse的test ng插件運行測試類時,我看到了此錯誤。 請幫助我解決此異常! 我在解決Eclipse中的ng問題時遇到了麻煩:-(

我已經嘗試過並發現無法使用的解決方案-

  1. 清理/構建項目。
  2. 卸載/重新安裝testng eclipse插件
  3. 重新開始蝕。

我不認為弄清楚jar是否異常提到了該類並將jar添加到classpath是解決此問題的正確方法,因為測試類所屬的項目已經具有所有依賴項。

如何確保測試環境可以訪問所有必需的jar?

只需將其放入pom.xml <dependencies>部分,然后重新編譯您的項目:

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>4.3.2.RELEASE</version>
        <scope>test</scope>
</dependency>

scope標簽意味着無論您做什么,它都不會被編譯到最終的jar / war中。

當我第一次執行新的TESTNG項目時,我遇到了類似的問題。 解決方案:在創建新的NG測試項目時,這是一件小事,請確保還添加了所有引用的庫和TESTNG庫。 添加庫Guava 23.6解決了我的問題。 如果您也執行了這個愚蠢的錯誤,請嘗試一下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM