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

How to access environment variables in boost unit test?

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

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

实际上我使用 linux 并从这样的 shell 脚本运行单元测试:

#!/bin/bash
export x=x
./run_unit_test


你显然没有在单元测试运行器的父进程中导出它。

例如在 Vim 之类的编辑器中并说

是行不通的

1
2
 :!export q=q
 :!./test

因为导出是在一个子shell中,但是测试在一个单独的进程中运行,它不是导出q的子shell的子进程。

相反,可行的是

1
!export q=q; ./test

当然,如果你不使用 vim,你会有不同的命令,但同样的原则适用:环境是继承的。一种常用的方法是在启动 IDE 之前在环境中设置变量(因此无论您使用 Visual Studio 还是使用 Vim 都没有关系)。

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


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

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

所以新环境没有导出的变量。