Selenium C# 自动化测试断言文件已在 azure devops 版本上下载

Selenium C# automation test Asserting file has been downloaded on azure devops release

我目前运行在计算机上进行本地自动化测试。 我正在考虑将它们发布到 azure devops & 运行 那里的所有测试。 在我的一项测试中,我声明了应该下载、检查和删除文件的位置。虽然它在通过 visual studio 在本地 运行 进行测试时有效但是当 Azure 中的测试 运行s Im 得到 System.IO.DirectoryNotFoundException 时:找不到零件路径 'C:\Users\Downloads'. 似乎是什么问题? 谢谢。我的代码如下

var filedownload = driver.FindElement(WebObjects.downloadThefile);
            Assert.IsTrue(downloadThefile.Enabled);
            downloadThefile.Click();

            System.Threading.Thread.Sleep(3000);

            int fileIsDownloaded = Directory.GetFiles(@"C:\Users\Downloads\", "*.pdf", SearchOption.AllDirectories).Length;
            if (fileIsDownloaded > 0)
            {
               Assert.IsTrue(fileIsDownloaded > 0);
            }
            else
            {
                Assert.IsTrue(fileIsDownloaded < 0);
            }
            string[] downloadedFiles = Directory.GetFiles(@"C:\Users\Downloads\", "*.pdf");
            foreach (string file in downloadedFiles)
            {
                File.Delete(file);
            }
        }
    }
}

Is there a way to run a test that asserts & verifies that certain file has been downloaded?

此功能应该写在存储库而不是 Azure DevOps 中,在您的描述中,您已经这样做了。您可以随意 运行 在 Azure DevOps 中进行测试,它应该可以正常工作。您可以参考此 blog 在 Azure DevOps 中创建 Selenium 测试管道。

成功设置下载路径为 int fileIsDownloaded = Directory.GetFiles(AppContext.BaseDirectory,"*.pdf", SearchOption.AllDirectories).Length;