1

我已经将我的开发机器(WinXP/32bit)换成了新机器(Windows 7/64bit)。现在我无法从 Visual Studio 2008 内部运行 NUnit 测试。我正在使用最新版本的TestDrivenNet

我正在寻找的是:

  • 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 运行器工作吗?
4

2 回答 2

3

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

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

如果测试运行超过其 64 位问题。如果它失败了,那么问题可能出在其他地方。您是否在测试中使用其他工具?覆盖,嘲笑等,也许问题出在其他地方?

于 2009-09-17T06:29:59.980 回答
1

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

看起来问题的根本原因是 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}"
于 2009-09-30T10:58:44.633 回答