testing具有外部依赖性的集装箱化微服务
于是我构build了一个REST API微服务,它查询本地Elasticsearch实例并根据内部协议转换结果。 我将其构build到一个Docker镜像中,我想在build中运行一些unit testing。 由于ES连接到私有Dockernetworking,在构build过程中微服务不可访问,因此testing显然失败。 我想知道,有没有办法解决这种情况,而不必使用一些复杂的testing框架来做dependency injection? 你在工作实践中如何testing这种容器?
我会build立应用程序没有任何testing。 然后,我将使用docker run
testing它,以便您可以采取dockernetworking的优势。
粗略地说,这比在构build过程中的testing更优雅:
-
docker build -t my_app:1.0-early
为了获取图像,docker build -t my_app:1.0-early
的应用程序。 -
docker run --network my_test_network my_app:1.0-early /run_test_cases.sh
。 返回正确的退出代码或文本。 - 根据testing的成功与否,重新标记:
docker tag my_app:1.0
您将需要已经创build一个dockernetworking( docker network create my_test_network
),或更好地使用docker构成。