Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: com/google/inject/Stage at org.testng.internal.Configuratio ...
Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: com/google/inject/Stage at org.testng.internal.Configuration.<init>(Configuration.java:33)
剛安裝完TestNG,第一次運行就出錯,在網上查遍了教程,基本沒什麼我的這類錯誤
嘔心瀝血了兩天,終於讓我解決了問題,果然功夫不負有心人,只不過這個功夫費的著實有點大。
eclispe的安裝和TestNG的安裝就不在這裡說了,網上有很多教程。
eclipse我用的是第一個IDE,直接下載的壓縮文件,直接解壓,配置一下eclipse.ini文件,在文件頭添加一下javaw.exe的絕對路徑即可
以下在eclipse.ini中是添加的東西。
別忘了配置環境變數。
我的這個例子是在安裝TestNG之前先安裝了Maven,並且TestNG項目也是建在了Maven項目中。
以上是我此次項目的所有目錄。
接下來重點講一下我排查TestNG運行不成功的原因。
一開始都是好好的,在沒有建立TestNG之前,eclipse還能好好的運行。Maven配置也沒有錯誤。
因為是第一次在eclipse中安裝Maven和TestNG,在網上也查了很多教程。因為是第一次,很多東西都不是很瞭解,所以一開始我以為原因出在了其他的地方(我的TestNG不是線上安裝的,是下載安裝包離線安裝的,我怕問題出在了離線安裝上。)我就重新解壓了下eclipse安裝包,重新運行,先安裝了TestNG,運行了下,雖然沒出結果(不知道是不是程式的問題,此時我對TestNG的輸出還是很迷糊的)但是也沒顯示任何錯誤,我就預設他是沒有問題吧。之後配置Maven,因為Maven之前已經下載過了,環境變數也配置好了。
如上圖,建立好Maven項目後,加入了TestNG。本以為這次妥妥的沒問題,但是現實還是教我做人了。
一運行,問題依舊。
這時候我就確定,不是TestNG插件問題了,這次是線上安裝的。Maven也沒有問題(關於這部分,網上有很多教程,我也看了很多,總結了下步驟,確定自己做的沒問題。)
建立Maven項目,會生成一個pom.xml文件,需要在裡面添加依賴。
我靈機一動,在TestNG官網上看到過Maven的配置,我覺得他有可能是要加到pom.xml文件中的,不然他問什麼會出現在下載頁面呢。我就試了下。
這個是下載頁面中的Maven的依賴。
我就把東西都複製到pom.xml文件中了,記得:一定要把版本改成你自己下的TestNG版本號,上面只是一個例子。我自己下的是目前的最新版本7.1.1,我就改了下,但是提醒我repositories錯誤,我就把這塊刪除了,一保存,一運行,我驚了。竟然成功了!!!
這裡說一下我為什麼如此震驚呢,因為一開始的時候,我有試過配置依賴,當時是在https://mvnrepository.com/artifact/org.testng/testng此網址中把Maven依賴複製過去的,這個網址是專門添加pom.xml以來的,需要什麼搜一下就行。當時添加好了之後還是有問題的,現在想想是版本號沒改,最新的版本只到7.1.0,而我的是7.1.1。這說明這個網站還是更新的不是很及時,不過最大的問題還是在我,因為我不懂,所以才導致在這個問題上浪費了太多時間。
最後放一下我的pom.xml中的相關配置。
哦了。