VS 2010 - 驱动器映射的单元测试

时间:2010-11-18 09:31:49

标签: visual-studio-2010 windows-7 resharper testdriven.net nunit-2.5

由于我的开发盒上的某些配置,我被迫将我的代码移动到“Doc​​uments and Settings”文件夹。由于我们的#?*&%$£“beloved”perforce VCS在特定情况下可能会出现长文件路径问题,因此我将驱动器(V :)映射为指向代码。现在通常有一个例外:出于某种原因,集成到VS中的单元测试运行器不能再运行测试。我特意尝试使用TestDriven.NET和ReSharper测试运行器。两者都表现出相同的奇怪行为:没有错误,测试只是不运行。

  

0通过,0失败,0跳过

当我从C:\ Documents ...打开解决方案并使用所述跑步者运行测试时,它可以工作:

  

211通过,0失败,0跳过

我首先怀疑64位问题(我们在Win7 Ultimate x64上)。但测试程序集设置为“Any CPU”,两个运行程序都可以处理该场景并重定向到相应的NUnit可执行文件(......据我所知,如果我弄错了,请纠正我!)。使用NUnit GUI打开测试程序集,从C:\和V:\工作正常。

我只能假设这与VS中的跑步者无法在文件路径引用映射驱动器时调用测试...但这听起来很奇怪,所以我希望有些人看到过这个之前的问题,可以提出一些建议。

将此归结为一个问题:
有没有人遇到过VS 2010中NUnit测试运行器没有执行测试的问题,可能是因为解决方案位于映射驱动器上?

Win 7 Ultimate x64
VS 2010旗舰版 NUnit 2.5.8
TestDriven.NET 3
ReSharper 5.1

2 个答案:

答案 0 :(得分:0)

我没试过。但只是一个想法。你能检查一下TestDriven.Net和NUnit的可执行文件的路径吗?您可能还想检查对测试项目的引用。是相对的还是绝对的?

答案 1 :(得分:0)

好的,我们终于找到了解决这个问题的方法。虽然我们没有真正解决映射的V:驱动器作为网络驱动器的问题,但如果使用SUBST命令创建映射驱动器,它确实可以正常工作。

这里的区别在于V:驱动器被视为网络位置,因为我在资源管理器菜单中使用“地图网络驱动器”创建了映射(我认为这相当于NET命令)。在网络和本地驱动器之间调用程序集时,这可能会导致信任问题。有些人甚至在构建过程中遇到了

的错误消息
  

未处理的例外情况:   System.Security.SecurityException:   该组件不允许部分   值得信赖的来电者。

使用SUBST我们的V:驱动器指向本地(=受信任)位置,现在我们的测试全部按预期运行

要使用SUBST创建映射驱动器,请执行以下操作。此示例将新虚拟驱动器“V”映射到用户(= [yourName])文件夹中的代码位置:

  

C:> subst v:C:\ Users [yourName] \ code