【发布时间】:2019-12-09 17:06:34
【问题描述】:
我正在尝试将 UnitTest 的输出放在 智能 位置,以便我可以:
- 多次运行测试并覆盖或创建新结果
- 查找我创建的结果/跟踪/日志文件
- 避免硬编码路径
建议似乎是使用 TestContext (https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.testtools.unittesting.testcontext?view=mstest-net-1.2.0)。我的单元测试正确地填充了这个对象;我在调试时可以看到。
我已尝试写入多个文件,结果令人沮丧。
写入测试目录中的文件
string fileOutput = Path.Combine(m_testContext.TestDir, "readmeBasic.txt");
using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileOutput))
{
file.WriteLine("Basic Data");
...
}
编写跟踪消息
m_testContext.WriteLine("Test Directory " + m_testContext.TestDir);
当我执行我的代码时,我可以看到 readmeBasic.txt 出现。在执行单元测试期间使用记事本++,即使经过几个WriteLine 语句,文件也会显示为空。在成功、无错误地执行我的单元测试后,包含该文件的目录将被删除(通过 Visual Studio ???)。
- 是否缺少我的配置?
- 哪里有解释为什么这个目录被删除的文档?
- 如果这些信息是暂时的并且会被删除,那么在
m_testcontext中提供这些信息有什么意义?
Visual Studio 2019 16.3.9
【问题讨论】:
标签: c# visual-studio unit-testing