3

总结:我可以运行单元测试和代码覆盖,但报告只包括 NUnit 类,而不包括我的应用程序类。

我过去曾成功使用过 PartCover。这次不是这样。我尝试了最新的 PartCover (4.0),降级到下一个最新的 (2.0),都使用 NUnit 2.5.6。

我创建了一个简单的 .NET 4.0 类库(也尝试使用具有类库项目的 Web 应用程序),在某个命名空间中有一个类,在另一个类中的另一个库中有两个测试方法。

NUnit/PartCover 安装正确;我可以在 NUnit 和 PartCover 中运行 NUnit 测试(我可以看到它们在运行并说“2 通过”),但报告只显示了 NUnit 命名空间。(是的,我使用 +[ ]作为我的覆盖规则。)

有任何想法吗?尽管我很喜欢 NUnit,但我希望看到我自己的课程的报道 :o)

而且我还尝试对齐 test-DLL 和 code-DLL 命名空间,但无济于事。

编辑:我尝试从一年前重新运行我以前工作的代码覆盖示例;所有测试都运行,但实际项目名称空间不会出现。这里有一个提示,这似乎暗示它取决于您使用的 NUnit 版本:http: //sourceforge.net/projects/partcover/forums/forum/605222/topic/3308367(是的,我已经尝试过 appdomain-报告复选框)

我已经尝试过 NUnit 2.5.5.x 和 2.5.6.x 并且都给了我相同的结果。

编辑:似乎官方 4.0 版本的这个分支似乎可以工作,虽然是零星的(谷歌的 PartCover 分支,我不能添加更多的超链接)

4

2 回答 2

1

疯狂。显然,在 NUnit 打印出总通过/失败的摘要后按键盘上的 Pause/Break 并等待大约一秒钟以等待第二个“CoreProfiler 已关闭”消息,使其一切正常。

当然,这不可能是真正的解决方案。当然,我可以安装一个批处理文件,它会在执行 NUnit 后大约 1 秒内休眠,但这似乎是一个重大黑客攻击。

于 2010-07-27T21:03:14.730 回答
1

处理此问题的正确方法是将所需的运行时添加到 nunit 的配置中。您会注意到 NUnit 在 CLR 2.0 而不是 4.0 中运行。SO上有很多关于这个问题的答案,但我首先找到了这个。单独做这件事为我解决了这个问题。请注意,您的运行时版本可能略有不同。您可能需要确认。

于 2011-03-16T03:34:15.727 回答