java.lang.Exception:No tests found matching的解決方案


今天學習MyBatis時使用Junit測試出現了這個錯誤:

1 java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=add], {ExactMatcher:fDisplayName=add(com.test.UserTest)], {LeadingIdentifierMatcher:fClassName=com.test.UserTest,fLeadingIdentifier=add]] from org.junit.internal.requests.ClassRequest@42110406
2     at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
3     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:83)
4     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:74)
5     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
6     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:525)
7     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)
8     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)
9     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)

查了一下,發現大家遇到這個問題的原因有這幾種:

1、測試方法前面沒有添加@Test注解(這也是最常見的錯誤了)

 

解決方案:加上注解,非常簡單。

2、測試方法使用了靜態修飾

 

 

( 這里舉的例子因為無法通過編譯的,所以旁邊直接提示有錯。)

解決方案:刪掉static,使用非靜態方法進行測試。

 3、測試方法不是public

 

 

 測試方法必須是public,很容易忽略的小細節。

解決方案:改為public修飾。

4、版本不兼容

這個問題我沒遇到,可以看一下這位朋友的解釋:https://blog.csdn.net/sinat_32873711/article/details/53780453

5、缺少jar包(如此坑爹的原因。。。)

這個就是我遇到的問題了,我逐一排除了各種可能的原因以后運行程序還是報錯,氣得我都想砸電腦了...

 

 

 后來我仔細看了一些項目,嗯?這是什么?

 

項目上有個紅色感嘆號,檢查了一下好像沒有啥問題,於是查了一下說有可能是缺少jar包。

得,看看是不是這么回事吧。

在有紅色感嘆號的項目上右鍵,選擇build path,再選擇Configure Build Path,我去還真是少了jar包

 

 

 咋回事呢,我突然想起來我之前搞日志下jar包的時候,一開始下的1.7.25的版本,后來發現1.7.30的slf4j用的人比較多,那趕緊換了,我粘貼到lib文件夾里的時候,順手就把1.7.25的jar包刪了,結果搞出這樣一個烏龍。

ok,remove這個jar包,項目恢復正常了。再來試試測試能不能行。

 

真是一包眼淚沒處擱!令人激動的綠色!!我這輩子沒這么愛過綠色!!

 

 OK,問題解決!

通過這個也可以發現,在排除了語法、格式方面的原因后假如問題還是不能解決,那么就得考慮考慮是不是那些雜七雜八的地方出現了問題,比如jar包丟失啊,版本不兼容啊之類的。

希望大家用Junit的時候每次都飄綠,永遠不報紅~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM