单元测试项目无法获取项目资源文件



所以我有一个应用程序,它有一个名为SupportFiles的文件夹。在该文件夹中是程序用于某些功能的一些XML文件。

这些文件在代码中加载,如下所示:

var approot = AppDomain.CurrentDomain.BaseDirectory;
var filepath = approot + @"SupportFilesSomeFile.xml";

编译应用时,它会将这些文件复制到"发布"或"调试"输出文件夹。

当我们第一次运行测试时,它找不到文件。我们认为这是因为它没有将它们复制到其输出中,根据错误,输出是 TestReults 文件夹。因此,第一个想法是简单地将文件夹复制到测试项目中,以便测试项目将它们复制到其输出中。但是,即使将文件设置为较新的文件进行复制,这也不起作用。而且我不认为尝试以与使用 DeploymentItem 执行测试文件相同的方式访问它们会起作用。

我们希望在不重构应用程序代码的情况下执行此操作,但如果这是唯一的方法,我们将不胜感激。

让它们成为嵌入式资源对我们不起作用,因为我们希望能够在不需要代码更改的文件发生更改时提升文件。

谢谢

您的程序集将从单元测试过程运行,您应该尝试此操作。

using System.Reflection;
var approot = Assembly.GetExecutingAssembly().Location;

最新更新