如何在 Azure Pipelines 中使用外部文件进行 vstest

How to use external files for vstest in Azure Pipelines

我正在尝试在打开外部文件 (myReport.rdl) 的 Azure Pipeline 中开始单元测试。目标是检查传递给 LocalReport class 的数据集是否与报告定义一致。 不幸的是我收到以下错误:

"d:\a\s\TestResults\Deploy_VssAdministrator 2019-08-04 06_29_01\Out\Reports\myReport.rdl".

如何将.rdl文件复制到正确的位置?还有其他解决方案吗?

代码

      var localReport = new LocalReport(); // Microsoft.Reporting.WinForms
      localReport.ReportPath = ReportPath; // Reports/myReport.rdl 
      ... 
      localReport.Render("PDF", DeviceInfo, out _, out _, out _, out _, out var warnings);

来自您在问题中提到的错误。我猜你正在使用属性 [DeploymentItem(string filePath, string outputDirectory)]。测试任务总是会把deploymentItem filePath中指定的文件复制到这个目录"../Out/outputDirectory(你指定的输出目录)/file".

例如: [DeploymentItem(@"MyData/myReport.rdl", "Reports")].
myReport.rdl 将被复制到“d:\a\s\TestResults\Deploy_************\Out\Reports\myReport.rdl”。 要在你的测试方法中使用 myReport.rdl,你需要指向你的 ReportPath = @"Reports \myReport.rdl".

如果您不指定 outputDirectory,如下例所示: [DeploymentItem(@”MyData/myReport.rdl”)].
myReport.rdl 将被复制到 d:\a\s\TestResults\Deploy_**********\Out\myReport.rdl”。 要在你的测试方法中使用 myReport.rdl,你可以指向你的 ReportPath = "myReport.rdl".

有关更多信息,您可以查看此线程 Do MSTest deployment items only work when present in the project test settings file?