1. 程式人生 > >第一次執行TestNG測試類時報Cannot find class in classpath

第一次執行TestNG測試類時報Cannot find class in classpath

第一次執行TestNG測試類時報以下的錯誤,其實我在公司也遇到這個問題,但2次出問題的原因不一樣,我記錄一下吧 。

org.testng.TestNGException:

Cannot find class in classpath: TestNGDemo
    at org.testng.xml.XmlClass.loadClass(XmlClass.java:81)
    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:546)
    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.XMLDocumentFragmentScannerImpl.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.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:38)
    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)

一、辦公室那一次:是因為我沒有配置好WebDriver的相關JAR檔案。配置如下:


二、第二次,我配置了還是報錯,是因為我犯了個低階錯誤,因為我新建的包沒有在src下面(原諒我還不是很熟悉java),因為這個原因,我的程式碼都沒有任何錯誤提示,還好昨天我剛看了java的基礎視訊,講到工程下面的src是專案的原始檔,是存放所有java檔案的地方。如下:

問題得到解決

三、我在網上還看到了其他方法,也寫在裡面吧,方便後面檢視

1、沒有配置環境變數(雖然我還不知道要配,我沒有配也成功了)

設定TestNG的環境

設定TESTNG_HOME環境變數指向TestNG的jar 存放在您的機器上的基本目錄位置。假設,我們已經儲存了testng-6.8.jar, TestNG各種作業系統上的資料夾如下:

OS 輸出
Windows Set the environment variable TESTNG_HOME to C:\TESTNG
Linux export TESTNG_HOME=/usr/local/TESTNG
Mac export TESTNG_HOME=/Library/TESTNG

設定CLASSPATH變數

設定CLASSPATH環境變數指向TestNG的jar檔案位置。假設,我們已經儲存了testng-6.8.jar, TestNG在各種作業系統上的資料夾如下:

OS 輸出
Windows 設定環境變數 CLASSPATH 為 %CLASSPATH%;%TESTNG_HOME%\testng-6.8.jar;
Linux export CLASSPATH=$CLASSPATH:$TESTNG_HOME/testng-6.8.jar:
Mac export CLASSPATH=$CLASSPATH:$TESTNG_HOME/testng-6.8.jar:
2、進行清理:

1)In Eclipse> Project > Clean. (The Exception remained)

2)I ran another project(The testng.xml ran successfully)