我使用docker和bitbucket管道,我在本地docker容器和bitbucket管道中运行数据库phpunit测试 . 这有效 . 在phpunit.xml.dist中我指出了数据库url .
在本地docker容器中,这是:mysql:// user:password @ mysql-database :3306 / database
但是在bitbucket管道中:mysql:// user:password @ localhost :3306 / database
我不想每次都更改phpunit.xml.dist,所以问题是,我怎么能在同一台主机上运行(我不在乎它是“localhost”还是“mysql-database”)?我尝试在bitbucket-pipelines.yml中设置container_name,但它不起作用:
definitions:
services:
mysql:
image: mysql:5.6
container_name: mysql-database
environment:
MYSQL_DATABASE: 'database'
MYSQL_ROOT_PASSWORD: 'root'
MYSQL_USER: 'user'
MYSQL_PASSWORD: 'password'
2 回答
主机数据库配置应该由
config_test.yml
而不是phpunit.xml.dist
处理 .如果你无法在
config_test.yml
中为bitbucket定义自定义参数,你可以定义一个新的symfony环境(即:local_test
),它有自己的config_local_test.yml
找到解决方案:a)如“goto”所述:不要在phpunit.xml.dist中设置数据库凭据b)我的.env文件凭据被忽略,所以我不得不在bitbucket设置中设置环境变量