C# 运行xUnit.net测试时的运行时文件夹结构
我正在开发一个运行在.net 4.6.1上的C#web应用程序,该应用程序假定某些DLL与执行程序集位于同一文件夹中,并尝试使用从这些DLL导入某些类型。当应用程序正在运行且所有必需的DLL都在bin文件夹中时,这一点很好,但当运行xUnit测试最终运行实现上述假设的代码时,我遇到了问题。我正在使用Visual Studio 2017运行测试 我的问题是,当我运行xUnit测试时,它会创建一个临时文件夹,其中包含我在单元测试项目中的每个引用的子文件夹。在每个子文件夹中都有一个单个引用的.dll和.pdb文件,以及一个_AssemblyInfo__.ini文件。显然,测试会因FileNotFoundException而崩溃,因为要使用导入某些类型的代码无法在与执行程序集位置相同的文件夹中找到DLLC# 运行xUnit.net测试时的运行时文件夹结构,c#,.net,mstest,xunit,xunit.net,C#,.net,Mstest,Xunit,Xunit.net,我正在开发一个运行在.net 4.6.1上的C#web应用程序,该应用程序假定某些DLL与执行程序集位于同一文件夹中,并尝试使用从这些DLL导入某些类型。当应用程序正在运行且所有必需的DLL都在bin文件夹中时,这一点很好,但当运行xUnit测试最终运行实现上述假设的代码时,我遇到了问题。我正在使用Visual Studio 2017运行测试 我的问题是,当我运行xUnit测试时,它会创建一个临时文件夹,其中包含我在单元测试项目中的每个引用的子文件夹。在每个子文件夹中都有一个单个引用的.dll和
有没有办法告诉xUnit将单元测试项目的所有引用放在一个文件夹中(比如bin文件夹?),并使用该文件夹运行测试?或者这可能是Visual Studio 2017中的一个设置?您可以简单地禁用
卷影复制
,以便所有执行都使用您的输出文件夹
要了解如何通过JSON配置xUnit.net,请使用搜索引擎。这仅对命令行运行程序有效。当从VS.@O.R.Mapper中运行测试时,我必须使用ReSharper选项对话框禁用正在测试的程序集的卷影复制,这是因为您使用的是ReSharper。JetBrains决定使用自己的设置,不支持xUnit.net设置。是的,添加的评论主要针对像我这样来这里的其他访问者,他们花了15分钟在谷歌上搜索和尝试,直到他们发现这个答案在他们的情况下为什么没有帮助;)@O.R.Mapper很明显,我只回答了这个问题,而ReSharper不在其中。当你进行搜索时,问问自己应该使用什么关键词。我相信,如果你在搜索关键词中添加ReSharper,JetBrains文档应该在顶部教你怎么做。OP写道“我正在使用Visual Studio 2017运行测试。”我甚至不知道我用来运行测试的UI属于ReSharper而不是VS本身,直到我碰巧发现了前面提到的ReSharper选项。即使我已经意识到这一事实,问题并不是说当从ReSharper运行xUnit时,它对xUnit无效-谁能猜到ReSharper在这方面是个例外?