当前位置: 首页 > 知识库问答 >
问题:

WinDbg'ing单元测试C#

甄成弘
2023-03-14

我的问题是什么?我试图使用WinDBG附加到我的一些单元测试,这些测试在类库(单元测试项目)中,但是我不能让WinDbg打破托管异常。

我为什么要这样做?目前,我有一些使用垫片的测试,并且遇到了这个问题:UnitTestIsolation异常:在发布/调试模式下运行垫片测试时抛出异常

然而,只有当这些测试与其他一些不使用垫片的测试同时运行(在测试资源管理器中的播放列表相同)时,才会发生这种情况。单独运行时,测试可以顺利通过。

因此,我想我应该启动WinDbg(我对它的了解非常有限),连接到测试运行程序,并在那里中断异常。

我尝试过的:因为这是一个DLL,它显然是由一些可执行文件加载的,以便在测试中运行代码(测试运行程序)。虽然我最初只是在Visual Studio中运行这些测试,但我也很难确定要附加哪个进程,所以我开始使用vstest.console.exe开始运行测试,然后附加到它上。

我能够附加罚款,WinDbg停止测试运行程序的执行(耶!)。

现在,我想在抛出CLR异常(意味着我的UnitTestIsolationException)后立即中断。在谷歌搜索之后,我找到了windbg命令:sxe clr

然后我输入g,程序再次开始运行我的测试。

我看到的行为:WinDbg从不在UnitTestIsolationException上中断-所有测试运行到完成,测试结果打印到控制台,然后程序终止:

Passed   [SomePassingTestName]
Passed   [SomePassingTestName]
Failed   [TheFailedTestMethodName]
Error Message:
   Test method [TheFaileTestMethodName] threw exception:
   Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationExceptio
n: Unexpected error returned by SetDetourProvider in profiler library 'C:\Progra
m Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsof
t\IntelliTrace\14.0.0\Microsoft.IntelliTrace.Profiler.14.0.0.dll'.

共有1个答案

皇甫聪
2023-03-14

我更喜欢psscor,但试试看

!StopOnException -derived -create System.Exception
 类似资料:
  • Android Studio 1.1 添加了单元测试支持,详细请看 Unit testing support。本章的其余部分描述的是 “instrumentation tests”。利用 Instrumentation 测试框架可以构建独立的测试 APK 并运行在真实设备(或模拟器)中进行测试。

  • 英文原文:http://emberjs.com/guides/testing/unit/ 单元测试用于测试代码的一个小片段,确保其功能正常。与集成测试不同,单元测试被限定在一个范围内,并且不需要Ember应用运行。 全局 vs 模块 过去如果没有作为一个全局变量加载整个Ember应用,要对应用进行测试非常困难。通过使用模块(CommonJS,AMD等)来编写应用,可以只加载被测试的部分,而不用将其

  • 单元测试涉及测试软件应用程序的每个单元或单个组件。这是第一级软件测试。单元测试的目的是验证单元组件的性能。 单元是软件系统的单个可测试部分,并在应用程序软件的开发阶段进行测试。 此测试旨在测试隔离代码的正确性。单元组件是应用程序的单独功能或代码。白盒测试方法用于单元测试,通常由开发人员完成。 在测试级别层次结构中,单元测试是在集成和其他剩余测试级别之前完成的第一级测试。它使用模块进行测试,减少了等

  • 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如 C 语言中单元指一个函数,Java 里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进

  • 我们从 Hello World 项目入手,增加单元测试功能。 我们新家了一个名为hello-world-test的 Gradle 项目。 环境 Gradle 3.4.1 Spring Boot 1.5.2.RELEASE Thymeleaf 3.0.3.RELEASE Thymeleaf Layout Dialect 2.2.0 Spring Security Test 4.2.2.RELEASE

  • 单元测试验证单个代码单元是否按预期工作。 也就是说,给定不同的输入参数, 测试验证类方法返回预期结果。 单元测试通常由编写待测试类的人开发。 Yii的单元测试框架 Codeception 基于 PHPUnit,Codeception 建议遵从 PHPUnit 的文档的进行开发: Codeception for Yii framework Codeception Unit Tests PHPUnit