2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
您可以通過(guò)在 docker-compose 文件中定義所有服務(wù)來(lái)啟動(dòng)您的環(huán)境。您還應(yīng)該在 docker-compose 文件中添加要測(cè)試的服務(wù)。啟動(dòng)后,您可以在要測(cè)試的服務(wù)中運(yùn)行集成測(cè)試。
示例 docker-compose 文件:
version: '2.2'
services:
service-you-want-to-test:
build: .
image: service-you-want-to-test
container_name: service-you-want-to-test
environment:
- ENVIRONMENT=${ENVIRONMENT}
- REDIS_ADDRESSES=[redis:6379]
- SERVICE_YOU_DEPEND_ON_ENDPOINT=service-you-depend-on:8091
- DB_HOST=mysql
- DB_USER=root
links:
- redis
- mysql
- service-you-depend-on
depends_on:
mysql:
condition: service_healthy
ports:
- 8090:8090
service-you-depend-on:
image: service-you-depend-on:latest
container_name: service-you-depend-on
environment:
- DB_HOST=mysql
- DB_USER=root
links:
- redis
- mysql
depends_on:
mysql:
condition: service_healthy
ports:
- 8091:8091
mysql:
image: mysql:5.7
container_name: mysql
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
volumes:
- ./.docker/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
- ./.docker/mysql/healthcheck-5.7:/var/www/healthcheck
healthcheck:
test: "/var/www/healthcheck"
interval: 5s
timeout: 5s
retries: 5
ports:
- 3306:3306
redis:
image: redis:3.2
container_name: redis
ports:
- 6379:6379
要設(shè)置集成環(huán)境,您可以使用以下命令:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
docker build -t service-you-want-to-test .
docker-compose up -d redis mysql
docker-compose up -d --build service-you-want-to-test
運(yùn)行上面的命令后,您可以通過(guò)命令行執(zhí)行集成測(cè)試:
go test -v path/to/integration_tests/...
因此,您還應(yīng)該將依賴的服務(wù)添加到 docker-compose 文件中,這樣您就可以在集成測(cè)試中實(shí)際向它們發(fā)送請(qǐng)求。請(qǐng)務(wù)必將這些服務(wù)端點(diǎn)添加到您的環(huán)境變量中,以便您可以覆蓋將請(qǐng)求發(fā)送到的端點(diǎn)。
為了重置您的數(shù)據(jù),例如您的數(shù)據(jù)庫(kù),您可以編寫(xiě)固定裝置。fixtures 只是幫助函數(shù)來(lái)重置數(shù)據(jù)庫(kù)、緩存等的數(shù)據(jù)。

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
在這種情況下您可以使用的另一個(gè)替代工具是Traffic Parrot。
我們最近在我們的服務(wù)虛擬化工具中添加了對(duì) gRPC 的支持,該工具包括一個(gè)可用于定義模擬行為的用戶界面。
有一個(gè)教程介紹如何在給定原型文件的情況下通過(guò)網(wǎng)絡(luò)模擬 gRPC 響應(yīng)。
您還可以在文檔中找到有關(guān)如何通過(guò)網(wǎng)絡(luò)進(jìn)行記錄和重放的信息。

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
我只是合并了一些補(bǔ)丁來(lái)覆蓋大部分 protobuf 聲明。我建議你檢查一下。
已知問(wèn)題:它仍然無(wú)法解析具有方法體聲明的 protobuf
- 2 回答
- 0 關(guān)注
- 196 瀏覽
添加回答
舉報(bào)