C# 无法在Bin文件夹c中运行单元测试#
背景:我有一个第三方类库,它使用C# 无法在Bin文件夹c中运行单元测试#,c#,unit-testing,xunit,C#,Unit Testing,Xunit,背景:我有一个第三方类库,它使用typeof(myClassFactory).Assembly.Location 来确定它的位置,然后使用它加载另一个dll。这是因为第二个dll未复制到临时位置而中断的。因此,我想让单元测试在/bin文件夹中运行。 我将Vs2017 pro与xUnit一起使用,并尝试了VS test runner和resharper,两者的行为相同 到目前为止我尝试的内容:我尝试创建test.runsettings文件并设置以下内容: false 如我所建议的 但是,代码仍在c
typeof(myClassFactory).Assembly.Location
来确定它的位置,然后使用它加载另一个dll。这是因为第二个dll未复制到临时位置而中断的。因此,我想让单元测试在/bin文件夹中运行。
我将Vs2017 pro与xUnit一起使用,并尝试了VS test runner和resharper,两者的行为相同
到目前为止我尝试的内容:我尝试创建test.runsettings文件并设置以下内容:
false
如我所建议的
但是,代码仍在c:/users/myuserName/Local/Temp/{someGuid}/{someGuid}/…etc
问题:如何使其在/bin目录中运行 我发现了我的问题,这与xUnit没有使用.runsettings文件有关 为了解决这个问题,我添加了一个名为
xunit.runner.json的新文件,并添加了以下代码:
{
“影印本”:假
}
我将其添加到解决方案的根目录中,然后通过右键单击该文件将其设置为复制到输出:
属性>复制到输出目录
设置为“更新时复制”
这使它工作起来考虑重新设计。抽象出这一点,因为这是一个实现问题。这样你可以在测试你想要的路径时模仿它。嗨,谢谢你的关注。代码存在于被测试的DLL中,用于加载更多资源。它也是遗留代码,不太可能重新设计以允许单元测试。是否向测试项目添加对缺少的dll的直接引用?这可能会迫使VS将其复制到需要的位置。