环境变量未在makefile中设置

时间:2016-01-22 10:00:47

标签: python makefile environment-variables

我想在Makefile中触发单元测试和集成测试,我目前的实现是这样的:

all: unittest integration
unittest:
    $(ECHO) @echo 'Running unittest'
    @unset TYPE
    @nosetests
integration:
    $(ECHO) @echo 'Running integration test'
    @export TYPE=integration
    @nosetests

但我在设置环境变量方面遇到问题,当我运行make integration时,如果我使用TYPE手动设置环境变量,则不会设置export TYPE=integration环境变量,然后我运行make unittest,环境变量不会被取消。怎么解决这个问题?

1 个答案:

答案 0 :(得分:2)

配方中的每个命令都在一个单独的shell中运行。运行export TYPE的shell立即退出;然后下一个命令在一个新的,新的实例中运行,当然没有这个设置。

shell具有在一个命令的持续时间内设置变量的特定语法;用那个。

all: unittest integration
unittest:
    echo 'Running unittest'
    TYPE= nosetests
integration:
    echo 'Running integration test'
    TYPE=integration nosetests

顺便说一句,你不应该为自己的变量使用大写;这些名称保留供系统使用。