Unit testing 如何在boost单元测试中访问环境变量?

Unit testing 如何在boost单元测试中访问环境变量?,unit-testing,boost,environment-variables,Unit Testing,Boost,Environment Variables,如何从boost单元测试中的测试用例中访问环境变量 我试图在测试用例中使用getenv,但未能获取导出的变量的值 实际上,我使用linux,并从shell脚本运行单元测试,如下所示: #/bin/bash 导出x=x ./run\u unit\u test您显然没有在单元测试运行程序的父进程中导出它 像Vim这样的编辑,说 :!export q=q :!./test 因为导出在子shell中,但测试在单独的进程中运行,该进程不是导出q的子shell的子进程 相反,有效的方法是 当然,如果不

如何从boost单元测试中的测试用例中访问环境变量

我试图在测试用例中使用getenv,但未能获取导出的变量的值


实际上,我使用linux,并从shell脚本运行单元测试,如下所示:

#/bin/bash
导出x=x

./run\u unit\u test

您显然没有在单元测试运行程序的父进程中导出它

像Vim这样的编辑,说

 :!export q=q
 :!./test
因为导出在子shell中,但测试在单独的进程中运行,该进程不是导出
q
的子shell的子进程

相反,有效的方法是

当然,如果不使用vim,您将有不同的命令,但应用相同的原则:环境是继承的。一种常见的方法是甚至在启动IDE之前就在环境中设置变量(因此无论您使用的是Visual Studio还是Vim)


当您更改环境(例如在windows上)时,请确保重新启动该IDE,以便它可以选择修改后的环境。

我发现读取boost测试用例中的环境变量没有问题

这是我的错,因为我设置了环境变量,然后使用sudo运行测试用例:'(


因此,新环境没有导出的变量。

实际上,我使用linux,并从如下shell脚本运行单元测试:“#!/bin/bash export x=x./run_unit_test”@Rod将相关信息添加到问题中。无论如何,注释在这里做得不好
!export q=q; ./test