我正在开发一个在 .net 4.6.1 上运行的 C# Web 应用程序,它假定某些 dll 与正在执行的程序集位于同一文件夹中,并尝试使用 MEF 从这些 dll 中导入某些类型。 .当应用程序正在运行并且所有必需的 dll 都在 bin 文件夹中时,这工作正常,但我在运行 xUnit 测试时遇到问题,最终运行做出上述假设的代码。我正在使用 Visual Studio 2017 运行测试。
我遇到的问题是,当我运行 xUnit 测试时,它会创建一个临时文件夹,其中包含我在单元测试项目中的每个引用的子文件夹。在每个子文件夹中都有一个 single 引用的 .dll 和 .pdb 文件以及一个 __AssemblyInfo__.ini 文件。显然,测试因 FileNotFoundException 而崩溃,因为想要使用 MEF 导入某些类型的代码在与执行程序集位置相同的文件夹中找不到 dll。
有没有办法告诉 xUnit 将单元测试项目的所有引用放在一个文件夹中(比如 bin 文件夹?)并使用该文件夹运行测试?或者这可能是 Visual Studio 2017 中的设置?
最佳答案
您可以简单地禁用 shadowCopy
,以便所有执行都使用您的输出文件夹。
要了解如何通过 JSON 配置 xUnit.net,请使用搜索引擎。
关于c# - 运行 xUnit.net 测试时的运行时文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52364247/