0

由于我的开发箱上的某些配置,我被迫将我的代码移动到“文档和设置”文件夹。由于我们的#?*&%$£ “喜爱的” perforce VCS 在特定场景中可能会遇到长文件路径的问题,因此我映射了一个驱动器 (V:) 以指向代码。现在这通常适用,但有一个例外:由于某种原因,集成到 VS 中的单元测试运行器无法再运行测试。我专门使用 TestDriven.NET 和 ReSharper 测试运行器进行了尝试。两者都表现出相同的奇怪行为:没有错误,只是没有运行测试。

0 通过,0 失败,0 跳过

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

211 通过,0 失败,0 跳过

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

我只能假设这与 VS 中的运行器在文件路径引用映射驱动器时无法调用测试有关……但这听起来很奇怪,所以我希望你们中的一些人以前见过这个问题并且可以给点建议。

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

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

4

2 回答 2

0

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

于 2010-11-22T17:17:48.927 回答
0

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

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

未处理的异常:System.Security.SecurityException:该程序集不允许部分受信任的调用者。

使用 SUBST 我们的 V: drive 指向本地(=可信)位置,现在我们的测试都按预期运行

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

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

于 2010-12-10T13:21:52.877 回答