如果所有测试都通过,则MSTest不会创建测试部署文件夹和测试结果

本文关键字:测试 创建 部署 文件夹 测试结果 MSTest 如果 | 更新日期: 2023-09-27 18:18:59

我正在使用MSTest来测试我的c#代码。

问题是,当运行测试时,我还在测试输出目录中写入一些文件:
[TestMethod]
public void TestSomething() {
  // Do some Assert stuff here...
  TestContext context = GetContext();
  string folderPath = Path.GetFullPath(context.DeploymentDirectory);
  string filePath = Path.Combine(
    Path.GetFullPath(this.context.TestRunDirectory), 
      "myfile.txt");
  using (StreamWriter writer = File.CreateText(filePath)) {
    writer.Write(content);
  }
}

我的解决方案是在C:'Users'MyUser'Documents'MySolution

当失败

当我运行测试并且它们失败时,我可以看到文件夹MySolution'TestResults'Deploy_myuser 2015-10-23 21_12_51文件夹正在创建,没有.trx文件!但是MySolution'TestResults'Deploy_myuser 2015-10-23 21_12_51'Out'myfile.txt !

当通过

未创建文件夹。

我的问题

我想总是生成测试结果文件夹。我不在乎.trx文件是否在通过时不生成(只要它失败时),但我希望始终在测试文件夹中写入myfile.txt

如何实现这一点?由于

如果所有测试都通过,则MSTest不会创建测试部署文件夹和测试结果

指定.testsettings文件并在其中设置一个属性以部署测试。您在这里描述的过程称为部署。当您不部署测试时,mstest将不会创建一个额外的工作目录。它将从其构建放置位置执行测试程序集。.testsettings可以与Visual Studio测试执行和cmd一起使用。

更多信息请参考

这篇MSDN文章