我正在一个在.net 4.6.1上运行的C#Web应用程序上工作,该应用程序假定某些dll与执行程序集位于同一文件夹中,并尝试使用MEF从这些dll中导入某些类型。当应用程序正在运行并且所有必需的dll位于bin文件夹中时,这种方法工作正常,但是在运行xUnit测试时出现问题,而这些测试最终可以运行进行上述假设的代码。我正在使用Visual Studio 2017运行测试。
我的问题是,当我运行xUnit测试时,它会创建一个temp文件夹,其中包含我在单元测试项目中拥有的每个引用的子文件夹。在每个子文件夹中,都有一个单个引用的.dll和.pdb文件以及__AssemblyInfo __。ini文件。显然,由于FileNotFoundException导致测试崩溃,因为要使用MEF导入某些类型的代码无法在与执行程序集位置相同的文件夹中找到dll。
是否有一种方法可以告诉xUnit将单元测试项目的所有引用放在一个文件夹(例如bin文件夹?)中,然后使用该文件夹运行测试?还是这可能是Visual Studio 2017中的设置?
答案 0 :(得分:0)
您只需禁用shadowCopy
,以便所有执行都使用您的输出文件夹。
有关如何通过JSON配置xUnit.net的信息,请参见