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

開源項目如何做集成測試,你學(xué)會了嗎?

開源
Golang 因為工具鏈沒有 Java 那么強大,所以大部分的集成測試的功能都是通過編寫 Makefile 和 shell 腳本實現(xiàn)的。

之前有朋友問如何做集成測試,今天就重點講講這個集成測試在開源項目中是如何做的。

通常是需要對外提供服務(wù)的開源項目都需要集成測試:

  • Pulsar
  • Kafka
  • Dubbo 等

而只提供本地類庫的項目通常只需要編寫單元測試即可:

  • Hutool
  • Apache Commmon

以我接觸到的服務(wù)型應(yīng)用主要分為兩類:一個是 Java 應(yīng)用一個是 Golang 應(yīng)用。

??Golang

Golang 因為工具鏈沒有 Java 那么強大,所以大部分的集成測試的功能都是通過編寫 Makefile 和 shell 腳本實現(xiàn)的。

還是以我熟悉的 Pulsar 的 go-client 為例,它在 GitHub 的集成測試是通過 GitHub action 觸發(fā)的,定義如下:

圖片圖片

最終調(diào)用的是 Makefile 中的 test 命令,并且把需要測試的 Golang 版本傳入進去。

圖片圖片

Dockerfile

圖片圖片

這個鏡像簡單來說就是將 Pulsar 的鏡像作為基礎(chǔ)運行鏡像(這里面包含了 Pulsar 的服務(wù)端),然后將這個 pulsar-client-go 的代碼復(fù)制進去編譯。

接著運行:

cd /pulsar/pulsar-client-go && ./scripts/run-ci.sh

也就是測試腳本。

圖片圖片

測試腳本的邏輯也很簡單:

  • 啟動 pulsar 服務(wù)端
  • 運行測試代碼 因為所有的測試代碼里連接服務(wù)端的地址都是 localhost,所以可以直接連接。

圖片圖片

通過這里的 action 日志可以跟蹤所有的運行情況。

?Java

Java 因為工具鏈強大,所以集成測試幾乎不需要用 Makefile 和腳本配合執(zhí)行。

還是以 Pulsar 為例,它的集成測試是需要模擬在本地啟動一個服務(wù)端,然后再運行測試代碼。

這個的好處是任何一個單測都可以在本地直接運行,而  Go 的代碼還需要先在本地啟動一個服務(wù)端,測試起來比較麻煩。

來看看它是如何實現(xiàn)的,我以其中一個 BrokerClientIntegrationTest為例:

圖片圖片

圖片圖片

會在單測啟動的時候先啟動服務(wù)端。

圖片圖片

最終會調(diào)用 PulsarTestContext 的 build 函數(shù)啟動 broker(服務(wù)端),而執(zhí)行單測也只需要使用 mvn 就可以自動觸發(fā)這些單元測試。

圖片圖片

只是每一個單測都需要啟停服務(wù)端,所以要把 Pulsar 的所有單測跑完通常需要 1~2 個小時。

所以這些集成測試本質(zhì)上都是先要把測試環(huán)境構(gòu)建出來,再跑對應(yīng)的測試代碼;后續(xù)也打算給 cim 加上集成測試實操一下。

責(zé)任編輯:武曉燕 來源: crossoverJie
相關(guān)推薦

2023-07-26 13:11:21

ChatGPT平臺工具

2023-04-26 00:41:36

A/B測試郵件數(shù)量

2024-09-30 08:01:44

2022-12-26 07:48:04

敏捷項目

2022-07-11 09:00:37

依賴配置文件Mybati

2023-05-30 14:16:00

開源項目Python

2023-04-14 09:04:07

測試TDBF單元測試

2023-01-26 00:28:45

前端測試技術(shù)

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-01-10 08:43:15

定義DDD架構(gòu)

2024-01-02 07:04:23

2023-07-29 00:10:48

2022-09-12 08:01:21

GreatSQLMySQL性能

2023-12-07 07:03:09

2022-11-30 09:54:57

網(wǎng)絡(luò)令牌身份驗證

2024-01-02 12:05:26

Java并發(fā)編程

2023-08-01 12:51:18

WebGPT機器學(xué)習(xí)模型

2022-08-29 08:05:44

Go類型JSON

2023-01-28 10:40:56

Java虛擬機代碼
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: www.久久久久久久久久久久 | 青青草网 | 一区二区三区四区av | 国产色播av在线 | 日韩精品久久久 | 日韩精品视频一区二区三区 | 日韩有码一区 | 国产一区二区三区色淫影院 | 久国久产久精永久网页 | 日韩中文字幕2019 | 亚洲一区中文字幕 | 九一视频在线播放 | 精品毛片| av在线视 | 国产高清在线精品 | 亚洲第一色av | 久久久久九九九女人毛片 | 欧美成人精品 | 日韩一二三区 | a级片网站 | 日韩欧美一区二区三区免费看 | 日韩一区二区三区四区五区六区 | 好好的日在线视频 | 久久大陆 | 亚洲乱码国产乱码精品精的特点 | 999精品视频| 精品久久久久久中文字幕 | 国产最新网址 | h漫在线观看| 日韩在线一区二区 | 亚洲永久字幕 | 亚洲黄色av | 久久噜噜噜精品国产亚洲综合 | 久久精品视频在线免费观看 | 欧美日韩专区 | 成人做爰69片免费观看 | 免费日韩av网站 | 91.com在线观看 | 91视频在线网站 | 亚洲一区中文字幕 | 中文一区 |