国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring、Spring Boot和TestNG測(cè)試指南 - 集成測(cè)試中用Docker創(chuàng)建數(shù)據(jù)庫(kù)

sshe / 1497人閱讀

摘要:我們還是會(huì)以測(cè)試關(guān)系型數(shù)據(jù)庫(kù)里的來(lái)做集成測(cè)試代碼在這里。這個(gè)很有用,如果集成測(cè)試失敗,那么你還可以連接到數(shù)據(jù)庫(kù)查看情況。

原文地址

在測(cè)試關(guān)系型數(shù)據(jù)庫(kù)一篇里我們使用的是H2數(shù)據(jù)庫(kù),這是為了讓你免去你去安裝/配置一個(gè)數(shù)據(jù)庫(kù)的工作,能夠盡快的了解到集成測(cè)試的過(guò)程。

在文章里也說(shuō)了:

在真實(shí)的開(kāi)發(fā)環(huán)境中,集成測(cè)試用數(shù)據(jù)庫(kù)應(yīng)該和最終的生產(chǎn)數(shù)據(jù)庫(kù)保持一致

那么很容易就能想到兩種解決方案:

開(kāi)發(fā)團(tuán)隊(duì)使用共用同一個(gè)數(shù)據(jù)庫(kù)。這樣做的問(wèn)題在于:當(dāng)有多個(gè)集成測(cè)試同時(shí)在跑時(shí),會(huì)產(chǎn)生錯(cuò)誤的測(cè)試結(jié)果。

每個(gè)人使用自己的數(shù)據(jù)庫(kù)。這樣做的問(wèn)題在于讓開(kāi)發(fā)人員維護(hù)MySQL數(shù)據(jù)庫(kù)挺麻煩的。

那么做到能否這樣呢?

測(cè)試啟動(dòng)前,創(chuàng)建一個(gè)MySQL數(shù)據(jù)庫(kù)

測(cè)試過(guò)程中連接到這個(gè)數(shù)據(jù)庫(kù)

測(cè)試結(jié)束后,刪除這個(gè)MySQL數(shù)據(jù)庫(kù)

So, Docker comes to the rescue。

我們還是會(huì)以測(cè)試關(guān)系型數(shù)據(jù)庫(kù)里的FooRepositoryImpl來(lái)做集成測(cè)試(代碼在這里)。下面來(lái)講解具體步驟:

安裝Docker

請(qǐng)查閱官方文檔。并且掌握Docker的基本概念。

配置fabric8 docker-maven-plugin

farbic8 docker-maven-plugin顧名思義就是一個(gè)能夠使用docker的maven plugin。它主要功能有二:

創(chuàng)建Docker image

啟動(dòng)Docker container

我們這里使用啟動(dòng)Docker container的功能。

大致配置如下

 
   io.fabric8
   docker-maven-plugin
   0.28.0

   
     
       
         
         mysql:8
         
         
           
             
             docker-mysql.port:3306
           
           
           
             123456
             test
             foo
             bar
           
           
           
             
             MySQL init process done. Ready for start up.
             
           
         
       
     
   

   
     
       
       start
       pre-integration-test
       
         start
       
     
     
       
       stop
       post-integration-test
       
         stop
       
     
   
 
配置maven-failsafe-plugin

  org.apache.maven.plugins
  maven-failsafe-plugin
  
    
      integration-test
      
        integration-test
      
    
    
      verify
      
        verify
      
    
  
  
    
    
      jdbc:mysql://localhost:${docker-mysql.port}/test
      foo
      bar
    
  
執(zhí)行

三種常見(jiàn)用法:

mvn clean integration-test,會(huì)啟動(dòng)docker container、運(yùn)行集成測(cè)試。這個(gè)很有用,如果集成測(cè)試失敗,那么你還可以連接到MySQL數(shù)據(jù)庫(kù)查看情況。

mvn clean verify,會(huì)執(zhí)行mvn integration-test、刪除docker container。

mvn clean install,會(huì)執(zhí)mvn verify,并將包安裝到本地maven 倉(cāng)庫(kù)。

下面是mvn clean verify的日志:

...
[INFO] --- docker-maven-plugin:0.28.0:start (start) @ spring-test-examples-rdbs-docker ---
[INFO] DOCKER> [mysql:8]: Start container f683aadfe8ba
[INFO] DOCKER> Pattern "MySQL init process done. Ready for start up." matched for container f683aadfe8ba
[INFO] DOCKER> [mysql:8]: Waited on log out "MySQL init process done. Ready for start up." 13717 ms
[INFO]
[INFO] --- maven-failsafe-plugin:2.22.1:integration-test (integration-test) @ spring-test-examples-rdbs-docker ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
...
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]
[INFO] --- docker-maven-plugin:0.28.0:stop (stop) @ spring-test-examples-rdbs-docker ---
[INFO] DOCKER> [mysql:8]: Stop and removed container f683aadfe8ba after 0 ms
[INFO]
[INFO] --- maven-failsafe-plugin:2.22.1:verify (verify) @ spring-test-examples-rdbs-docker ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
...

可以看到fabric8 dmp在集成測(cè)試前后start和stop容器的相關(guān)日志,且測(cè)試成功。

如何找到MySQL的端口開(kāi)在哪一個(gè)呢?運(yùn)行docker ps查看端口(注意下面的0.0.0.0:32798->3306/tcp):

CONTAINER ID  IMAGE     COMMAND  CREATED  STATUS    PORTS                                NAMES
a1f4b51d7c75  mysql:8   ...      ...      Up 19...  33060/tcp, 0.0.0.0:32798->3306/tcp   mysql-1
參考文檔

Fabric8 dmp

Spring boot - Externalized Configuration

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/27649.html

相關(guān)文章

  • SpringSpring BootTestNG測(cè)試指南 - 測(cè)試關(guān)系型數(shù)據(jù)庫(kù)

    摘要:地址提供了對(duì)的支持,能夠讓我們很方便對(duì)關(guān)系型數(shù)據(jù)庫(kù)做集成測(cè)試。如果想要在打包的時(shí)候跳過(guò)集成測(cè)試,只需要。例子使用因?yàn)槭褂昧藖?lái)做集成測(cè)試,得益于其機(jī)制,不需要自己構(gòu)建和的。 Github地址 Spring Test Framework提供了對(duì)JDBC的支持,能夠讓我們很方便對(duì)關(guān)系型數(shù)據(jù)庫(kù)做集成測(cè)試。 同時(shí)Spring Boot提供了和Flyway的集成支持,能夠方便的管理開(kāi)發(fā)過(guò)程中產(chǎn)生...

    Meils 評(píng)論0 收藏0
  • SpringSpring BootTestNG測(cè)試指南 - 使用Spring Boot Test

    摘要:地址前面一個(gè)部分講解了如何使用工具來(lái)測(cè)試項(xiàng)目,現(xiàn)在我們講解如何使用工具來(lái)測(cè)試項(xiàng)目。所以我們可以利用這個(gè)特性來(lái)進(jìn)一步簡(jiǎn)化測(cè)試代碼。因?yàn)橹挥羞@樣才能夠在測(cè)試環(huán)境下發(fā)現(xiàn)生產(chǎn)環(huán)境的問(wèn)題,也避免出現(xiàn)一些因?yàn)榕渲貌煌瑢?dǎo)致的奇怪問(wèn)題。 Github地址 前面一個(gè)部分講解了如何使用Spring Testing工具來(lái)測(cè)試Spring項(xiàng)目,現(xiàn)在我們講解如何使用Spring Boot Testing工具來(lái)測(cè)...

    Anshiii 評(píng)論0 收藏0
  • SpringSpring BootTestNG測(cè)試指南 - 使用Mockito

    摘要:例子使用源代碼我們先給了一個(gè)的實(shí)現(xiàn)然后又規(guī)定了方法的返回值。源代碼也就是說(shuō),得益于,我們能夠很方便地對(duì)依賴關(guān)系中任意層級(jí)的任意做。 Github地址 Mock測(cè)試技術(shù)能夠避免你為了測(cè)試一個(gè)方法,卻需要自行構(gòu)建整個(gè)依賴關(guān)系的工作,并且能夠讓你專注于當(dāng)前被測(cè)試對(duì)象的邏輯,而不是其依賴的其他對(duì)象的邏輯。 舉例來(lái)說(shuō),比如你需要測(cè)試Foo.methodA,而這個(gè)方法依賴了Bar.methodB,...

    Alliot 評(píng)論0 收藏0
  • SpringSpring BootTestNG測(cè)試指南 - 共享測(cè)試配置

    摘要:地址在使用工具中提到在測(cè)試代碼之間盡量做到配置共用。本章將列舉幾種共享測(cè)試配置的方法我們可以將測(cè)試配置放在一個(gè)里,然后在測(cè)試或中引用它。也可以利用的及自定義機(jī)制,提供自己的用在測(cè)試配置上。 Github地址 在使用Spring Boot Testing工具中提到: 在測(cè)試代碼之間盡量做到配置共用。...能夠有效利用Spring TestContext Framework的緩存機(jī)制,Ap...

    CHENGKANG 評(píng)論0 收藏0
  • SpringSpring BootTestNG測(cè)試指南 - 測(cè)試Spring MVC

    摘要:地址提供了,能夠很方便的來(lái)測(cè)試。同時(shí)也提供了更進(jìn)一步簡(jiǎn)化了測(cè)試需要的配置工作。本章節(jié)將分別舉例說(shuō)明在不使用和使用下如何對(duì)進(jìn)行測(cè)試。例子測(cè)試的關(guān)鍵是使用對(duì)象,利用它我們能夠在不需啟動(dòng)容器的情況下測(cè)試的行為。 Github地址 Spring Testing Framework提供了Spring MVC Test Framework,能夠很方便的來(lái)測(cè)試Controller。同時(shí)Spring...

    andong777 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<