成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么是Testcontainers,為什么你應該關心?

云計算 分布式
在現代軟件開發中,隨著分布式系統和微服務架構的持續趨勢,以及巨大的集成界面,編寫軟件也意味著與其他系統集成。集成測試是確保被測系統持續正確性的絕佳工具,并且可以在開發周期中提供系統行為的快速且持續的反饋。

Testcontainers 減少了設置和拆除測試環境的摩擦,簡化了測試,從而實現更自信、更健壯的開發。

譯自What Is Testcontainers, and Why Should You Care?,作者 Kevin Wittek。

在現代軟件開發中,隨著分布式系統和微服務架構的持續趨勢,以及巨大的集成界面,編寫軟件也意味著與其他系統集成。集成測試是確保被測系統持續正確性的絕佳工具,并且可以在開發周期中提供系統行為的快速且持續的反饋。

然而,集成測試通常需要外部依賴項,例如數據庫、消息代理或 Web 服務器,所有這些依賴項都有自己的配置和正確運行的特殊性。傳統上,管理這些依賴項很麻煩,容易出現不一致,并且難以在不同機器上復制。

從歷史上看,這使得集成測試因編寫和維護成本高而聲名狼藉。你要么必須遵循可能過時的文檔以費力的手動方式設置環境(最終只得到一個略微損壞的環境),要么使用集中維護的共享測試環境,這通常會導致測試污染。

這就是Testcontainers的用武之地。我的同事Oleg ?elajev將在 All Things Open 2024 上以“制作你自己的 Testcontainers 模塊,既有趣又有利可圖!”為題的演講中展示這一點。

了解 Testcontainers

Testcontainers 是一個開源庫,用于提供一次性、輕量級的數據庫、消息代理、Web 瀏覽器或幾乎可以在 Docker 容器中運行的任何東西的實例。通過利用Docker根據需要從你的代碼庫中啟動這些服務的輕量級、隔離的實例,Testcontainers 解決測試和開發期間的環境管理問題。

Testcontainers 允許開發人員使用基礎設施即代碼 (IaC)方法,以最小的工作量創建可靠且可重復的測試和開發環境。它使用熟悉的語言編寫生產和測試代碼,并幫助確保代碼針對真實、一致的服務進行測試。這種方法減少了設置和拆除測試環境的摩擦,并使測試更可靠、更容易維護。對于開發人員來說,Testcontainers 是一款改變游戲規則的產品,它簡化了測試過程,并實現了更自信、更穩健的開發。

清理

Testcontainers 還會自動清理它創建的所有Docker資源,確保你的系統在運行測試后保持整潔。此清理過程與你正在使用的測試框架(例如 JUnit)無縫集成,其中容器會在測試執行后自動停止并刪除。

此外,Testcontainers 依賴于一個名為Ryuk的專用輔助容器,它會監視并確保所有資源都得到正確清理,即使在測試進程可能崩潰或意外終止的情況下也是如此。通過將此清理過程綁定到測試進程的生命周期,并使用 Ryuk 作為監視程序,Testcontainers 保證不會留下任何雜散容器、網絡或卷,從而保持你的環境清潔,并最大程度地降低后續測試運行中資源耗盡或沖突的風險。

模塊

Testcontainers 提供了一組豐富的模塊,其中封裝了在測試上下文中使用容器的最佳實踐,從而使將各種技術集成到你的測試套件中變得更加容易。這些模塊是針對特定技術(例如數據庫(例如PostgreSQL、MySQL)、消息代理(例如Kafka、RabbitMQ)甚至像 Selenium 這樣的用于瀏覽器測試的成熟應用程序環境)定制的預配置 Docker 容器。

通過使用這些模塊,開發人員可以利用經過嘗試和測試的配置,這些配置針對測試場景中的可靠性和效率進行了優化。Testcontainers 模塊目錄提供了可用模塊的全面列表,使你能夠快速查找和實現所需的容器化服務。

以下兩個最小示例展示了在Java和Go:如何使用Redis鏡像定義 Docker 容器,配置其公開端口,并以等待容器內 Redis 應用程序就緒的方式啟動容器。

在 Java 中:

GenericContainer redis = new GenericContainer("redis:5.0.3-alpine")
    .withExposedPorts(379);
redis.start()

在 Go 中:

container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
    ContainerRequest: testcontainers.ContainerRequest{
        Image: "redis:5.0.3-alpine",
        ExposedPorts: []string{"6379/tcp"},
        WaitingFor: wait.ForLog("Ready to accept connections"),
    },
    Started: true,
})

Testcontainers Cloud

除了這些廣泛建立的開源庫之外,Testcontainers 還提供了一個產品,可以將這些容器無縫地卸載到云中,而無需對 Testcontainers 代碼進行任何更改:Testcontainers Cloud。通過利用 Testcontainers Cloud,您可以顯著減少本地計算機上的負載,釋放資源以執行其他任務,同時仍然運行復雜、資源密集型的測試。

圖片圖片


這種方法可以加快您的開發工作流,并使您的測試環境與所需的 Docker 運行時(例如,x86)具有架構同等性,因為容器是在一致且可擴展的云環境中執行的。無論您是處理繁重的工作負載還是只想簡化測試流程,Testcontainers Cloud 都提供無縫集成,既能提高性能,又能提高可靠性,讓您能更多地專注于編碼,而無需管理本地資源。

總結

Testcontainers 是一款多功能且強大的工具,它改變了開發人員處理集成測試和本地開發的方式。通過提供一個易于使用的界面來啟動針對特定測試需求量身定制的 Docker 容器,并且可以直接從所用編程語言的熟悉性中訪問,Testcontainers 消除了與管理測試環境相關的常見挑戰。

借助封裝最佳實踐的模塊、自動清理以保持系統整潔以及將容器執行卸載到 Testcontainers Cloud 的能力,這種方法為在測試流程中保持一致性、可靠性和效率提供了一個全面的解決方案。

無論您是希望簡化本地工作流的開發人員,還是旨在擴展云中測試的團隊,Testcontainers 都為您提供了必要的工具,以確保您的代碼在不同環境中無縫運行。通過采用 Testcontainers,您不僅可以提高測試質量,還可以為更強大、更自信的開發周期鋪平道路。

責任編輯:武曉燕 來源: 云云眾生s
相關推薦

2022-09-15 20:57:55

身聯網IoB物聯網

2020-08-10 15:48:01

Python輪子計算

2015-08-24 10:51:00

全棧

2015-08-25 09:57:18

程序員全棧工程師

2022-05-16 09:27:37

UbuntuUbuntu LTS

2022-01-23 13:51:30

Arch LinuxLinux

2020-06-05 14:09:42

Kubernetes容器應用程序

2019-11-22 16:09:02

企業安全網絡風險管理IT

2019-11-23 17:23:53

網絡風險網絡安全網絡攻擊

2021-08-14 09:04:58

TypeScriptJavaScript開發

2021-04-02 22:00:50

服務網格微服務

2021-02-27 10:38:56

Python結構數據

2025-06-25 02:30:00

AIMCPLLM

2021-05-08 14:00:58

FedoraLinux

2023-02-03 17:25:31

自動化代碼審查開發

2018-07-30 09:29:16

谷歌Android開發者

2022-05-06 08:00:00

APIBallerina編程語言

2021-06-30 12:47:12

標簽HTML分辨率

2019-02-13 14:28:59

2019-04-22 14:20:08

區塊鏈數字貨幣比特幣
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区二区不卡 | 伦理午夜电影免费观看 | 福利社午夜影院 | 黄色小视频入口 | 亚洲一区有码 | 国产一区二区三区在线看 | 成人免费看片网 | 日本不卡一区二区三区 | 日本精品一区二区三区在线观看视频 | 不卡的av在线 | 久久国产精品-国产精品 | 国产日韩欧美 | 精品电影| 国产精品国产三级国产aⅴ中文 | 男女下面一进一出网站 | 亚洲综合大片69999 | 三级成人片 | 精精国产xxxx视频在线播放7 | 久久精品一区二区 | 久久国品片 | 久久久久99 | 91精品国产色综合久久 | 日批免费在线观看 | 亚洲先锋影音 | 久草色视频 | 国产成人综合一区二区三区 | 欧美一区二区三区在线播放 | 在线免费观看黄a | 射欧美| 亚洲性在线| 国产成人精品综合 | 欧美在线a | 99视频在线播放 | 日韩伦理一区二区 | 久久久久久国产一区二区三区 | 国产高清在线精品一区二区三区 | 在线观看成人av | 一级黄色片网站 | 伊人伊人伊人 | 在线观看成年视频 | 国产精品一卡二卡三卡 |