SpringBoot項目中@Test不出現可點擊運行的按鈕問題

@Test不出現可點擊運行的按鈕

SpringBoot項目的test包裡用來做測試的*****Test類裡面的@Test單元測試不起作用,即左邊沒有可以運行的按鈕,如下圖-1所示:

@Test不起效

圖-1

這時我們看到@SpringBootTest註解也有,@Test註解也有,但是左邊沒有可運行的按鈕,原因是這個類和類裡的方法都不是公開(public)的,需要在class前加上public,也需要在類裡的方法前面也加上,比如這個要在contextLoads方法的void前面也加上public,都加上後就能出現想要的效果瞭,如下圖-2所示:

@Test註解起效

此時,左邊就出現瞭能夠點擊運行的三角按鈕,就可以用這個類寫方法測試瞭。

單元測試中有瞭@Test註解但是idea沒有執行的按鈕

打算給自己的demo弄一個單元測試碰到的一些坑,我從其他項目復制一份單元測試發現左側沒有執行按鈕

 我去我另外一個項目左看右看瞭老半天沒找發現問題,然後我就想這個會不會是因為導入的包不一樣所以出現瞭問題

org.junit.jupiter.api.Test和org.junit.Test就是這兩個

查閱瞭下資料,原理是

  • spring boot 2.2之前使用的是 Junit4:org.junit.Test
  • spring boot 2.2之後使用的是 Junit5:org.junit.jupiter.api.Test

看瞭一下項目springboot版本果然不一樣

解決辦法

如果你用的版本是spring boot 2.2之前的版本你給他加上public就行

擴展

@RunWith(SpringRunner.class)的作用

註解的意義在於Test測試類要使用註入的類,比如@Autowired註入的類有瞭@RunWith(SpringRunner.class)這些類才能實例化到spring容器中,自動註入才能生效,不然直接一個NullPointerExecption

@SpringBootTest(classes = SpringBootShardingsphereDemoApplication.class)

該註解是用到類名上,表示自動啟動加載類或指定某個或多個加載啟動類,默認會加載當前module下的啟動類

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: