【发布时间】:2019-09-21 22:27:51
【问题描述】:
我正在为我的 Go 项目寻找构建系统。在 Java 世界中,事情看起来要容易得多。你有 maven,做测试/集成测试和打包项目非常容易。
我正在尝试找到在 docker 中启动 Redis 然后运行包集成测试并最终停止 Redis 的解决方案。
我的测试规则没有问题:
go_test(
name = "go_default_test",
srcs = ["person_cache_integration_test.go"],
embed = [":go_default_library"],
deps = [
"//internal/models:go_default_library",
"@com_github_stretchr_testify//assert:go_default_library",
],
)
但是如何在此规则之前在 Docker 中启动 Redis,并在测试成功或失败后停止 Redis?
谢谢。
【问题讨论】:
-
您的问题更多是因为您需要一种方法来在发生故障时进行清理,而不是启动起来很困难?您可以让测试启动容器作为测试二进制文件本身的一部分。
-
我这样做是因为我找不到使用 bazel 的解决方案。