将屏幕截图保存到根目录VSTS

时间:2016-12-22 22:55:52

标签: c# visual-studio azure-pipelines

我有一个简单的功能,可以在运行Xunit测试时截取屏幕截图。 测试很简单。

 ITakesScreenshot screenshotHandler = PropertiesCollection.driver as ITakesScreenshot;
            Screenshot screenshot = screenshotHandler.GetScreenshot();
            screenshot.SaveAsFile(@"C:\Users\Slim\Screenshots\" + filename + ".png", ImageFormat.Png);

它有效,但我们正在使用VSTS,当其他人使用测试时,由于路径不再有效,它会中断。 C:\Users\Slim\Screenshots\ 可以将代码的路径更改为本地具有文件的路径,但这当然不是好的做法:)

我曾尝试使用AppDomain.CurrentDomain.BaseDirectory,但没有运气。

ITakesScreenshot screenshotHandler = PropertiesCollection.driver as ITakesScreenshot;
            Screenshot screenshot = screenshotHandler.GetScreenshot();
            screenshot.SaveAsFile(AppDomain.CurrentDomain.BaseDirectory + //Screenshots//" + filename + ".png", ImageFormat.Png);

有什么好建议吗?

1 个答案:

答案 0 :(得分:0)

您可以查看SpecialFolders enumeration

它处理对程序数据,程序文件,应用程序数据等路径的访问。如果您使用特定于用户的文件夹(例如LocalApplicationData或RoamingApplicationData)分别映射到{,则会正确处理用户帐户。 {1}}和C:\users\MyUser\AppData\Local

另一方面,你有例如CommonApplicationData,它通常映射到C:\users\MyUser\AppData\Local\Roaming,这对所有用户来说都很常见。

所以,总而言之,你可以这样做:

C:\ProgramData