我正在开发一个运行在.net 4.6.1上的C#Web应用程序,它假设某些dll与执行程序集位于同一个文件夹中,并尝试使用MEF从这些dll导入某些类型。当应用程序运行并且所有必需的dll都在bin文件夹中时,这很好用,但是在运行xUnit测试时我遇到了问题,这些测试最终会运行上面提到的假设的代码。我正在使用Visual Studio 2017运行测试。
我遇到的问题是,当我运行xUnit测试时,它会创建一个临时文件夹,其中包含我在单元测试项目中的每个引用的子文件夹。在每个子文件夹中都有单个引用的.dll和.pdb文件以及__AssemblyInfo __。ini文件。显然,测试因FileNotFoundException崩溃,因为想要使用MEF导入某些类型的代码无法在与执行程序集位置相同的文件夹中找到dll。
有没有办法告诉xUnit将单元测试项目的所有引用放在一个文件夹中(比如bin文件夹?)并使用该文件夹运行测试?或者这可能是Visual Studio 2017中的一个设置?
您可以简单地禁用shadowCopy
,以便所有执行都使用您的输出文件夹。
如何通过JSON配置xUnit.net可以在,