单元测试

ReSharper提供了一个单元测试运行程序,这个测试运行程序可以帮助您基于NUnit、xUnit.net、MSTest、QUnit和Jasmine运行及调试单元测试。 您可以浏览测试,按照不同的方式为测试分组,将测试细分为各个会话,查看测试输出以及从堆栈跟踪导航到源代码。

利用ReSharper Ultimate,您还可以连续运行测试,衡量测试覆盖率和性能。

运行和调试单元测试

ReSharper 可以自动检测您的 .NET 和 .NET Core 项目中 NUnitXUnitMSTest 框架的单元测试。 MSpec等其他单元测试框架通过ReSharper插件获得支持。

ReSharper在测试类声明和单个测试旁添加了特殊图标,您可以点击这些图标来运行或调试测试。 或者,当脱字符号位于测试声明中时,按Alt+Enter

还可以通过上下文菜单执行测试。 此外,您还可以在Visual Studio的Solution Explorer中运行或调试任意数量的单元测试组。 只需选择一个文件、文件夹、项目或解决方案,并按Ctrl+U、RCtrl+U、D;或者右键点击所选项,并选择Run unit testsDebug unit tests

ReSharper中的Unit Test Explorer

Unit Test Explorer

ReSharper提供了Unit Test Explorer — 一个结构化的单元测试列表,用于查看整个解决方案中测试的结构。 此树可以使用Ctrl+Alt+U快捷键或通过ReSharper | Windows菜单调用,会在您生成项目后快速填充。 利用Unit Test Explorer,您可以在一个或多个单元测试会话中运行任何测试组合。

捆绑的单元测试运行程序

Unit Test Sessions

ReSharper在Unit Test Sessions窗口中运行单元测试。 此窗口旨在帮助您同时并彼此独立地运行任意数量的单元测试会话。 这些会话可以包括任意测试组合。 在调试模式中,一次只能运行一个会话。

单元测试树可以显示属于某个会话的测试的结构,您可以筛选,只显示通过失败忽略的单元测试。 您可以通过双击导航到任意单元测试的代码。

进度栏和状态栏可以显示当前的进度。 您可以随时停止、运行或者重新生成并重新运行单元测试。

借助Preview窗格,您可以分析测试结果,并从失败测试的输出导航到引发异常的代码行,点击一下即可完成操作。

使用dotCover分析代码覆盖率

使用dotCover分析代码覆盖率

利用 JetBrains dotCoverReSharper Ultimate 许可证同样提供此工具),您可以轻松发现单元测试对您的解决方案代码的覆盖程度。

安装dotCover后,它将根据选定范围对单元测试的代码覆盖率进行分析和可视化,并显示单元测试未覆盖的代码。 这对于在应用程序开发和质量保证中设置正确的优先级十分有帮助。

使用dotCover进行连续测试

使用dotCover进行连续测试

如果您使用 ReSharper UltimatedotCover,可以享用连续测试:一个现代的单元测试工作流,在这个流程中,dotCover 可以实时发现哪些单元测试受到最新代码更改的影响,并自动为您重新运行受影响的测试。

dotCover可以在保存文件、生成解决方案时,或者当您明确要求dotCover执行相关操作时检测和/或运行受影响的测试。

您可以针对所有单元测试使用连续测试,也可以指定希望连续运行哪些测试以及以传统方式运行哪些测试。

使用dotTrace分析单元测试的性能

您还可以通过 JetBrains dotTrace 在 Visual Studio 中快速分析单元测试的性能,dotTrace 是一款强大的 .NET 性能分析工具,也是 ReSharper Ultimate 的一部分。

安装dotTrace后,您可以使用ReSharper为测试类和各个测试添加的侧栏标记,直接从编辑器中开始性能分析。

使用dotMemory Unit监控内存使用

要直接在单元测试中分析内存使用率,可以使用 dotMemory Unit,这是 JetBrains 推出的一款免费内存单元测试框架。

在引用dotMemory Unit后,您可以根据内存流量、特定对象是否存在于内存中以及指示应用程序内存使用率的其他因素来让您的单元测试通过或失败

快捷键注释

本页面提供的所有键盘快捷键都在 ReSharper 的默认“Visual Studio”按键映射中。 有关 ReSharper 两种按键映射的详细信息,请参阅 ReSharper 文档