我正在尝试创建一个Makefile
来运行我的测试。我必须在运行测试之前设置DATABASE_URL
变量,但看起来它不起作用。
这是我的Makefile
IP := $(docker-machine ip default)
DATABASE_URL := "postgres://postgres@$(IP)/postgres"
test:
@echo ${DATABASE_URL}
py.test tests
我收到类似这样的错误
E psycopg2.OperationalError: could not connect to server: No such file or directory
E Is the server running locally and accepting
E connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
如果我直接从bash设置DATABASE_URL
,我可以运行测试。
答案 0 :(得分:2)
您应该按照here所述导出DATABASE_URL。
export DATABASE_URL := "postgres://postgres@$(IP)/postgres"
echo ${DATABASE_URL}
由make而不是shell解析。只需尝试env | grep DATABASE_URL
,只要DATABASE_URL
未导出,您就会收到错误。
您期望的行为(导出所有变量)可以通过不带参数的export
命令来实现。