我需要为某些C ++代码编写单元测试,以检查是否存在环境变量。我正在使用MSVS 2008和gtest作为我的框架。我使用putenv添加环境变量,我使用getevn检查环境变量,但我无法弄清楚如何删除它,以便没有其他测试会看到它。我意识到这可能很容易,但我在互联网上找不到答案。感谢
答案 0 :(得分:11)
再次调用putenv
指定"SOME_VAR="
作为参数将删除环境变量SOME_VAR
。顺便说一句,Microsoft建议使用_putenv
,因为putenv
已被弃用。
答案 1 :(得分:2)
你总是可以fork / exec一个子进程来做putenv
/ getenv
测试,然后当它终止时,周围没有任何杂散环境。
答案 2 :(得分:2)
如何将env var设置为空字符串?
从cmd.exe,这可以工作:
set SOMEVAR=something
echo %SOMEVAR%
set SOMEVAR=
echo %SOMEVAR%
最后一个显示它已被删除。
答案 3 :(得分:0)
您可以使用unsetenv
功能。
如果vc2008缺少此功能,您可以使用getenv_s
直接访问环境,并手动删除该条目,模拟unsetenv
。