Microsoft C++原生单元测试:Logger输出去向何方?
VS2019 C++原生单元测试Logger输出位置说明
你遇到的情况是VS C++原生单元测试的默认行为:Logger::WriteMessage的输出不会直接显示在Visual Studio的Output窗口,而是被写入到测试结果的日志文件中,同时可在Test Explorer的结果详情里查看。
查看Logger输出的两种方式:
通过Test Explorer查看详情
在Test Explorer中找到对应的测试类或方法,右键选择「查看测试结果详细信息」,弹出的窗口里会完整展示Logger::WriteMessage输出的所有内容。直接查找日志文件
测试日志默认存在系统临时目录的TestResults子文件夹下,路径类似:%TEMP%\TestResults\<你的用户名>_<机器名>_<时间戳>里面的
.trx(测试结果文件)或.log文件会包含所有Logger输出内容。
让Logger输出显示在Output窗口的方法
如果希望日志直接出现在Visual Studio的Output窗口,可以调整测试运行设置:
- 点击顶部菜单「测试」→「测试设置」→「选择测试设置文件」,若没有自定义设置,新建一个本地测试设置文件。
- 在设置文件的「数据和诊断」面板中,勾选「测试日志」,并配置将输出同步到Output窗口的选项。
- 或者在Test Explorer工具栏的「运行设置」中,选择「输出」选项,勾选「将测试输出写入控制台」(不同版本选项文字可能略有差异)。
替代方案
如果不想调整测试设置,也可以直接用标准输出函数代替Logger:
TEST_METHOD(TestMethod1) { printf("Test method. This will show in Output window (Debug tab)\n"); std::cout << "Another message for Output window" << std::endl; }
调试运行测试时,这些内容会直接出现在Output窗口的「调试」选项卡下。
内容的提问来源于stack exchange,提问作者AlainD
相关产品推荐
相关产品推荐

