使用docker进行单元测试

时间:2015-10-29 12:50:58

标签: mysql unit-testing docker

我使用--net=host选项运行MySQL容器。

所以现在我可以使用:g:

进行单元测试
  

self.db = MySQLdb.connect(host =“127.0.0.1”,user =“XYZ”,passwd =“XYZ”,   分贝= “TEST_DB”)

问题是,当我尝试对单元测试进行dockerize,将容器与我的MySQL容器相关联时,127.0.0.1 IP无效。我需要使用真正的IP用于MySql容器,或使用DNS(/etc/hosts文件)。

所以我需要更改ip 127.0.0.1以获取MySQL主机的名称。

我想有更好的方法可以做到这一点?例如,我可以改变我的开发环境的/etc/hosts文件。

1 个答案:

答案 0 :(得分:1)

Docker链接更新链接容器中的/etc/hosts文件。

使用您链接到的容器的名称(在/etc/hosts文件中找到它)来引用测试中的数据库。

self.db = MySQLdb.connect(host="db-container-name", user="XYZ", passwd="XYZ", db="TEST_DB")

docker-compose也将为您执行此操作(它只是Docker的包装器并使用下面的链接),或者您可以使用--add-host标志手动将条目添加到容器的{{1}根据{{​​3}}文件:

/etc/hosts