How to access environment variables in boost unit test?
如何从 boost 单元测试中的测试用例访问环境变量?
我尝试在测试用例中使用 getenv,但未能获得导出的变量的值!!
实际上我使用 linux 并从这样的 shell 脚本运行单元测试:
export x=x
./run_unit_test
你显然没有在单元测试运行器的父进程中导出它。
例如在 Vim 之类的编辑器中并说
是行不通的
1 2 | :!export q=q :!./test |
因为导出是在一个子shell中,但是测试在一个单独的进程中运行,它不是导出
相反,可行的是
1 | !export q=q; ./test |
当然,如果你不使用 vim,你会有不同的命令,但同样的原则适用:环境是继承的。一种常用的方法是在启动 IDE 之前在环境中设置变量(因此无论您使用 Visual Studio 还是使用 Vim 都没有关系)。
当您更改环境时(例如在 Windows 上),请务必重新启动该 IDE,以便它可以选择修改后的环境。
我发现在boost测试用例中读取环境变量没有问题。
这是我的错,因为我设置了环境变量,然后使用 sudo 运行了测试用例 :\\'(
所以新环境没有导出的变量。