使用spring boot+junit測(cè)試[web工程中使用spring配置中心]的測(cè)試用例

首先web工程一般的啟動(dòng)方式是web容器,如tomcat,jetty是牢。然后由于使用了spring的配置中心,你需要指定幾個(gè)jvm options參數(shù)來(lái)指定配置中心的git地址以及分支等陕截。但是為了方便測(cè)試驳棱,為了不用每次測(cè)試都啟用tomcat,于是想到使用Junit測(cè)試用例
于是想到普通web項(xiàng)目的測(cè)試用例的寫(xiě)法如下:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"classpath:spring-servlet.xml","classpath:spring-common.xml"})
public class SpringWebJunitTest {

    @Autowired
    private IItemsService itemsService;

    @Test
    public void test() {
        itemsService.queryItemsByClasscode("ddd");
        System.out.println("hello world");
    }
}

然后在在classpath下面加入bootstrap.properties內(nèi)容如下:

spring.cloud.config.uri=http://localhost:9010 #指定git倉(cāng)庫(kù)地址
spring.cloud.config.name=database,business,component #指定配置文件的名稱(chēng)
spring.cloud.config.profile=dev #指定profile的類(lèi)型,test,dev,prod等
spring.cloud.config.label=dev #指定git的分支

但是報(bào)dataSource的數(shù)據(jù)源初始化失斔也摺(數(shù)據(jù)庫(kù)鏈接配置在spring的配置中心)

2017-01-11 17:50:29 [INFO] [org.springframework.beans.factory.xml.XmlBeanDefinitionReader:317] - Loading XML bean definitions from class path resource [spring-common.xml]
2017-01-11 17:50:29 [INFO] [org.springframework.context.support.AbstractApplicationContext:578] - Refreshing org.springframework.web.context.support.GenericWebApplicationContext@63676602: startup date [Wed Jan 11 17:50:29 GMT+08:00 2017]; root of context hierarchy
[17:50:30|INFO |(com.alibaba.druid.pool.DruidDataSource)]=[{dataSource-1} inited]

從日志可以看出這是因?yàn)槌跏蓟?code>sprint-common.xml失敗,然后想到是因?yàn)榧虞d不到spring配置中心
然后想是因?yàn)槲业腷ootstrap.properties不起作用嗎蹈胡,試試用jvm options 制定參數(shù)呢
為測(cè)試用例添加jvm options:

-Dspring.cloud.config.uri=http://localhost:9010 #指定git倉(cāng)庫(kù)地址
-Dspring.cloud.config.name=database,business,component #指定配置文件的名稱(chēng)
-Dspring.cloud.config.profile=dev #指定profile的類(lèi)型渊季,test,dev,prod等
-Dspring.cloud.config.label=dev #指定git的分支

如圖:

Paste_Image.png

結(jié)果報(bào)了一模一樣的錯(cuò)誤朋蔫,這是意識(shí)到是這兩種方式得知配置中心的方法是無(wú)效的罚渐,于是想想肯定有人和我一樣遇到類(lèi)似的坑吧,結(jié)果google了半天無(wú)果驯妄,無(wú)奈啊~

起身上了個(gè)廁所回來(lái)一想荷并,spring boot 方式不是能正常加載到spring的配置中心嗎,用junit也能正常跑起來(lái)青扔,為什么換成web酒跑步起來(lái)呢源织。為了達(dá)到測(cè)試用例效果,擺了
就用junit 結(jié)合spring boot來(lái)啟用web項(xiàng)目并加載配置中心吧微猖,抱著還不行就不管了的心態(tài)試了試谈息。以下是配置過(guò)程。

在項(xiàng)目pom.xml中加入spring boot 啟動(dòng)web項(xiàng)目的支持

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <scope>test</scope>
        </dependency>
  1. 新建Spring boot啟動(dòng)類(lèi)Application類(lèi)
@Configuration
@EnableAutoConfiguration
@ComponentScan
@ImportResource({"classpath:spring-servlet.xml","classpath:spring-common.xml"})
public class SprintBootTestApplication extends WebMvcConfigurerAdapter {

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(SprintBootTestApplication.class);
        System.out.println("spring boot start success.");
    }
}
  1. 新建junit測(cè)試類(lèi)型來(lái)運(yùn)行Spring boot 啟動(dòng)類(lèi)
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SprintBootTestApplication.class)
@WebAppConfiguration
public class BaseTest {

    @Resource(name="testService")
    public TestService testService;

    @Test
    public void test(){
        testService.sayHello("world");
        System.out.println("finish!!!");
    }
}

測(cè)試運(yùn)行凛剥,果然可以侠仇。不知道為什么單純的使用測(cè)試用例不能使用spring配置中心配置,如果哪位大俠有更好的方法犁珠,能夠分享下讓我學(xué)習(xí)學(xué)習(xí)啊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末逻炊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子犁享,更是在濱河造成了極大的恐慌余素,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炊昆,死亡現(xiàn)場(chǎng)離奇詭異桨吊,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)窑眯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)屏积,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人磅甩,你說(shuō)我怎么就攤上這事炊林。” “怎么了卷要?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵渣聚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我僧叉,道長(zhǎng)奕枝,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任瓶堕,我火速辦了婚禮隘道,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己谭梗,他們只是感情好忘晤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著激捏,像睡著了一般设塔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上远舅,一...
    開(kāi)封第一講書(shū)人閱讀 51,258評(píng)論 1 300
  • 那天闰蛔,我揣著相機(jī)與錄音,去河邊找鬼图柏。 笑死序六,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蚤吹。 我是一名探鬼主播难咕,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼距辆!你這毒婦竟也來(lái)了余佃?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤跨算,失蹤者是張志新(化名)和其女友劉穎爆土,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體诸蚕,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡步势,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了背犯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坏瘩。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖漠魏,靈堂內(nèi)的尸體忽然破棺而出倔矾,到底是詐尸還是另有隱情,我是刑警寧澤柱锹,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布哪自,位于F島的核電站,受9級(jí)特大地震影響禁熏,放射性物質(zhì)發(fā)生泄漏壤巷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一瞧毙、第九天 我趴在偏房一處隱蔽的房頂上張望胧华。 院中可真熱鬧寄症,春花似錦、人聲如沸矩动。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)铅忿。三九已至,卻和暖如春灵汪,著一層夾襖步出監(jiān)牢的瞬間檀训,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工享言, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留峻凫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓览露,卻偏偏與公主長(zhǎng)得像荧琼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子差牛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容