我正在為一個學校專案制作一個應用程式,但是我遇到了一個問題,即當我嘗試運行單元測驗時,它會在啟動應用程式時嘗試連接到資料庫,這對于測驗來說不是必需的(因為它會被模擬),并且在 CI/CD 管道中不可用。
jdbc連接錯誤
我正在用 Java Maven Springboot 構建我的專案,并且想知道如何在運行測驗時阻止它嘗試連接到資料庫。
這是我的存盤庫的鏈接:https ://gitlab.com/kwetter_jack/Kwetter_posts/-/tree/ci_cd_setup
uj5u.com熱心網友回復:
您的測驗類具有@SpringBootTest將啟動 Spring 應用程式背景關系的注釋 - 當您的應用程式使用資料庫時,測驗還將嘗試設定和使用資料庫連接。
最簡單的解決方案是洗掉注釋,以便測驗不再嘗試連接到資料庫。您可能需要模擬更多的依賴項,因為 Spring 不再為您創建這些依賴項。您還可以查看https://www.baeldung.com/spring-boot-testing了解如何更改測驗的其他一些想法。
或者,如果您確實想要/需要運行應用程式背景關系,您可以application.yaml為定義和使用記憶體資料庫的測驗添加一個,以便測驗可以連接到 - 請參閱https://www.baeldung.com/spring-boot -h2-database了解如何執行此操作的詳細資訊。
uj5u.com熱心網友回復:
只需更改下的值spring.datasource以H2 database防止應用程式連接真正的資料庫。
測驗應用程式.yml
僅供參考,您無需從原始 application.yml 復制所有配置,只需要覆寫一些配置。
uj5u.com熱心網友回復:
當我研究 spring boot H2 記憶體資料庫時(正如 Chris Olive 和 Paranaaan 所建議的那樣),我還遇到了使用測驗容器的選項。在研究了這個之后,我發現這使專案能夠創建一個帶有 MySQL 映像的臨時 docker 容器,我可以在專案測驗期間使用該容器,考慮到我打算無論如何都使用 docker 來對我嘗試的微服務專案進行集成測驗這個并找到了,它像我希望的那樣作業。
如果有人對我使用的測驗容器解決方案感興趣,可以在這兩個網頁上找到資訊:
https://www.testcontainers.org/modules/databases/mysql/
https://www.testcontainers.org/modules/databases/jdbc/
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/473822.html
上一篇:如何使用--match和cabal測驗特定的hSpec屬性
下一篇:測驗NUnit啟動Azure函式
