我已将我的开发机器 (WinXP/32bit) 更换为新机器 (Windows 7/64bit)。现在我在 Visual Studio 2008 内部运行 NUnit 测试时遇到问题。我正在使用最新版本的 测试驱动网.

我正在寻找的是:

  • a) 如何让TestDrivenNet在Win7/64上工作
  • b) 寻找替代测试运行程序的建议。免费的优先。

什么在 WinXp/32 上有效(在 Win7/64 上无效):

  • 在 VS.NET 中运行一种测试方法
  • 在 VS.NET 中调试一种测试方法
  • 在 VS.NET 中的一个类中运行所有测试

Win7/64 上的症状:

  • 当尝试运行测试时,跑步者报告“0 个通过,0 个失败,0 个跳过”。看起来在我的班级中找不到任何测试。
  • 使用 TestDriven.NET-2.22.2468 (RTM) 和 2.23.2497 (beta) 进行测试。结果相同。

问题:

  • 你能推荐一个适用于 Win7/64 的好用的 nunit 测试运行程序吗?免费版本是首选。
  • 对于如何使 testdriven.net 运行器工作有什么建议吗?
有帮助吗?

解决方案 2

我的同事遇到了完全相同的问题,这次他能够提供最小的修复。我将其重新发布在这里 - 也许对其他人也有帮助。

看起来问题的根本原因是 Source Gear Vault 3.5.x。看看他们的 支持论坛帖子 了解详情。

将以下代码提交到注册表中解决了 TD.NET 无法工作的问题:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}]
@="IServiceProvider"
[HKEY_CLASSES_ROOT\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}\NumMethods]
@="4"
[HKEY_CLASSES_ROOT\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}\ProxyStubClsid32]
@="{A4A1A128-768F-41E0-BF75-E4FDDD701CBA}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}]
@="IServiceProvider"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}\NumMethods]
@="4"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6D5140C1-7436-11CE-8034-00AA006009FA}\ProxyStubClsid32]
@="{A4A1A128-768F-41E0-BF75-E4FDDD701CBA}"

其他提示

我使用的是 win7 64 位和 TD.NET 2.22.246,它工作得很好。唯一存在的其他 Visual Studio 运行程序是 mstest(仅作为 32 位进程运行)和 测试矩阵 (不是免费的)

要检查是否是 64 位问题,您可以将测试项目构建为 x86 并使用 TD.NET 运行测试。在这种情况下,TD.NET 将作为 32 位进程运行 - 您可以使用任务管理器并查看 ProcessInitation.exe 来验证它

如果测试运行则表明是 64 位问题。如果失败了,那么问题可能出在其他地方。您在测试中是否使用其他工具?报道、嘲笑等,也许问题出在其他地方?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top