NUnit辅助线程异常

2024-06-22

我正在测试启动辅助线程的代码。并且这个线程有时会抛出异常。我想编写一个测试,如果没有正确处理该异常,该测试就会失败。

我已经准备好了该测试,我在 NUnit 中看到的是:

LegacyImportWrapperTests.Import_ExceptionInImport_Ok : PassedSystem.ArgumentException: aaaaaaaaaa
at Import.Legacy.Tests.Stub.ImportStub.Import() in ImportStub.cs: line 51...

但测试标记为绿色。那么,NUnit 知道该异常,但为什么它会将测试标记为“通过”?


您可以在输出中看到异常详细信息并不一定意味着 NUnit 知道该异常。

我已经用过AppDomain.UnhandledException http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx在测试期间监视此类场景的事件(假设异常未处理,我假设这里就是这种情况):

bool exceptionWasThrown = false;
UnhandledExceptionEventHandler unhandledExceptionHandler = (s, e) =>
{
    if (!exceptionWasThrown)
    {
        exceptionWasThrown = true;
    }
};

AppDomain.CurrentDomain.UnhandledException += unhandledExceptionHandler;

// perform the test here, using whatever synchronization mechanisms needed
// to wait for threads to finish

// ...and detach the event handler
AppDomain.CurrentDomain.UnhandledException -= unhandledExceptionHandler;

// make assertions
Assert.IsFalse(exceptionWasThrown, "There was at least one unhandled exception");

如果您只想测试特定异常,可以在事件处理程序中执行此操作:

UnhandledExceptionEventHandler unhandledExceptionHandler = (s, e) =>
{
    if (!exceptionWasThrown)
    {
        exceptionWasThrown = e.ExceptionObject.GetType() == 
                                 typeof(PassedSystem.ArgumentException);
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NUnit辅助线程异常 的相关文章

  • 共享库 C++ Makefile

    我需要编译胖二进制文件才能在另一台 Linux 机器上使用它 但缺少一些库 因此据我了解 我应该使用一些 shared 选项来编译它 但我不明白如何为此配置 Makefile 目前我的 makefile 如下所示 CC g CC FLAGS
  • 如何使用仿函数作为类模板中的成员?

    我试图使用函子作为std function类模板内的对象 以下是我到目前为止所做的事情 the functor class template template
  • 什么是合适的 NHibernate / Iesi.Collections.Generic.ISet 替代品?

    在最新版本的 Iesi Collections 中缺少 Iesi Collections Generic ISet 似乎有三种选择 链接哈希集 只读集 同步集 Iesi Collections Generic ReadOnlySet 似乎最
  • main() 是用户定义函数吗? [复制]

    这个问题在这里已经有答案了 程序员does定义内部发生的事情main 毕竟 那么 它应该被视为用户定义的函数吗 C 标准没有用户定义函数的概念 相反 它有一个概念库函数 main 不是库函数 但是 该标准还对其签名提出了一些要求 并且不得重
  • 不同平面中不同幅值的两条线段之间最近的两个 3D 点

    比方说AB1 AB2 CD1 CD2 AB1 AB2 and CD1 CD23D 点构成线段 所说的线段是不在同一平面 AP是一个点 线段AB1 AB2 BP是一个点 线段CD1 CD2 Point1 and Point2彼此最接近 两条线
  • 如何将值从 ASP.NET MVC 控制器传递到 MVC 视图内的 ASP.NET Webforms 控件?

    我的 ASP NET MVC 方法并未跨越 ASP NET Web 窗体 因此我很难理解如何更好地将值从 ASP NET MVC 控制器传递到 MVC 视图内的 ASP NET Webforms 脚本 例如 控制器动作 public Vie
  • 如何重命名 MacOS/X 程序中的程序名称菜单标签?

    我有一个在 MacOS X 下运行的基于 Qt 的 GUI 程序 我希望能够更改该程序的第一个菜单标题的标签 即此屏幕截图中用红色圈出的标签 有没有一种编程方法可以做到这一点 假设不存在基于 Qt 的解决方案 则 Objective C 本
  • 对双向链表进行排序 C++

    尝试通过遍历列表的循环来完成此操作 在循环中 我将头节点输入到我定义的排序函数中 然后使用 strcmp 来确定节点中的哪个名称是否应该排在前面 它不起作用 因为写得太早了 我通过一次沿着列表一个节点进行线性比较 而不是回去查看第一个节点是
  • 网页上的富文本编辑器

    我正在尝试在我的网页中添加一个富文本编辑器 用户可以在其中撰写评论并格式化他们所写的内容 类似于我们在此网站上撰写帖子的编辑器 谁能指出我关于此的正确方向 任何可以帮助我构建这样一个组件的教程 我还想要一个免费的产品 忘记之前提到 类似的东
  • 像 MS Excel 一样在 C++ 中舍入双精度值

    我在网上进行了搜索 但找不到解决我的问题的方法 我只是想要一个像 MS Excel 那样对双精度值进行舍入的函数 这是我的代码 include
  • 如何使用 SonarQube 的 C# 插件设置 FxCop 安装路径

    我正在尝试使用 SonarQube C 插件分析 NET C 项目 从C Plugin 3 0开始 即使sonar project properties中的 sonar fxcop mode skip FxCop也会自动执行 所以我将FxC
  • 使用 C# winforms 与 Windows 中的其他桌面应用程序交互

    我想知道是否可以与使用我的程序的其他程序进行交互 例如 单击另一个程序上的按钮等 我不确定这是否可能 但如果可能的话 有人可以提供一些 C 示例代码 Thanks 您可以创建消息并将其发送到其他进程 为此 您必须在 C 代码中使用 P In
  • 在 QML 中使用 C++ 枚举作为字符串

    我想做的是在 C 中使用以下枚举 class MyClass public QQuickItem Q OBJECT Q PROPERTY MyEnum enumValue READ getEnumValue public enum MyEn
  • 当调试器退出且没有调用堆栈时,用于跟踪 C# 崩溃的工具?

    我有一个大型 复杂的 C GUI 应用程序 它以完全可重现的方式崩溃 但我无法轻松诊断崩溃的原因 因为调试会话不是以通常的方式使用调用堆栈破坏调试器 而是完全退出 唯一的提示是输出窗口末尾有一条消息 STATUS STACK BUFFER
  • 如何隐藏鼠标光标?

    我想问是否有人可以为我提供一个 C 代码 在其中我可以在按下特定键时隐藏 显示鼠标指针 我发现一些只为 TURBO C 编写的代码 它们都不能使用 dev c 甚至 Visual c 编译和运行 我尝试运行在 Dev C 中找到的代码 但我
  • Action 的通用约束未按预期工作

    我无法理解为什么以下代码片段没有给我错误 public void SomeMethod
  • 我使用 difftime 的 c 函数有时会返回 65535

    我有一个函数 使用 difftime 来检测自通信心跳停止以来的时间 以秒为单位 该函数的运行速度可以达到每 50 毫秒一次 该函数似乎可以工作 除了偶尔返回 65535 之外 我可以将执行次数减少到每秒一次 因为 difftime 的返回
  • 着色器可以旋转形状以面向相机吗?

    我制作了一个球出现在 3D 空间中的场景 三角球耗费大量资源 所以我使用带有球纹理的二维表面 四边形 来完成此操作 但现在我需要在每次相机移动时调整形状的方向 我使用位置变换和 LookAt 方法来完成此操作 问题是我可以优化这个吗 如果可
  • 用于 DSP 的快速 2D 卷积

    我想实现一些图像处理算法 这些算法旨在运行在小猎犬板 http en wikipedia org wiki Beagle Board 这些算法广泛使用卷积 我正在尝试为 2D 卷积找到一个好的 C 实现 可能使用快速傅里叶变换 我还希望该算
  • 使用 CRTP 模式时继承中的不明确方法

    我正在定义一个DoubleWrapper类继承自两个 CRTP 基类 Ratioable and Divable 两者都定义operator 具有不同的签名 T operator double const scalar const retu

随机推荐

  • UINavigationController 状态恢复(无故事板)

    我一直在考虑恢复状态 在下面的代码中 UITableViewController 的滚动位置得到恢复 但是 如果我要进入详细视图 将 MyViewController 的实例推到导航堆栈上 当应用程序重新启动时 它总是返回到第一个视图导航堆
  • 无法使用新的 Drive API 检索 Google Drive 文件和文件夹

    我正在尝试从我的 Android 应用程序获取 Google Drive 文件夹中的文件列表 但到目前为止尚未成功 我正在使用 google api drive v1 rev4 java 1 6 0 beta 和 google api cl
  • java swing来计算所有控件的数量

    如何在java swing表单设计中计算JTextField J Label等控件的数量 例如 如果我们只使用一个文本框和一个文本字段 则意味着我需要如下输出计数值为2 如何做这 控件的容器包含控件列表 请参阅Container getCo
  • 微服务中的分布式事务

    我有2个微服务S1 and S2 S1调用S2更新数据 然后S1插入另一个数据 但是让我们考虑一下S1失败 那么我们需要回滚更新的数据S2否则我们将处于不一致的状态 我也经历过 Saga 模式 它能满足这种不一致吗 谁能为此提出更好的解决方
  • 类型错误:“NoneType”对象不可调用,BeautifulSoup

    我遇到了一个奇怪的错误 我正在尝试做一些基本的解析 本质上 我正在以 x 格式收集数据 并希望以我可以使用的格式返回所有内容 我面临的直接问题是我的代码返回一个奇怪的错误 我已经浏览了这里针对同一问题的其他一些帖子 答案 但是脱离了上下文
  • 为什么当Fragment隐藏时,Fragment中的SurfaceView仍然可见?

    只是一个一般性问题 我有一个带有 SurfaceView 的片段 当我通过 FragmentManager 隐藏 Fragment 时 SurfaceView 仍然可见 我找到了一种解决方法 只需在片段隐藏 可见时将视图设置为不可见 消失
  • 如何更改 Google 日历嵌入事件颜色?

    我创建了一个谷歌日历并通过 PHP 的谷歌客户端库创建了事件 创建此项目时 我为事件设置了 colorId 粉色 但是当我在我的网站中嵌入 Google 日历时 事件仅显示蓝色 尽管我在我的 Google 日历中看到此事件有粉红色 这是我想
  • 我可以编写没有标头(重复函数声明)的 C++ 代码吗?

    在使用 C 编程时 有没有什么方法可以不必编写两次函数声明 头文件 并且仍然保留相同的编译可扩展性 调试清晰度和设计灵活性 Use Lzz http www lazycplusplus com 它需要一个文件并自动为您创建 h 和 cpp
  • AngularJS 复制到剪贴板

    有没有办法制作一个具有复制功能的复制按钮 该按钮将复制模态的所有内容 然后您可以将其粘贴到记事本中 我需要这个功能Controller 由于要复制的文本是动态的 这是我基于中的代码的简单函数剪贴板 https github com nico
  • a^2 和 a^2L 有区别吗?

    之间有区别吗a 2 and a 2L in R 速度差异 精确 到目前为止我还没有看到 只是想知道 2 是否被实现为 log exp 对 但 2L 被实现为乘法 如果a不只是一个向量吗 UPDATE 不 它不是重复的 我知道两者之间的区别2
  • 通过上下文操作栏获取 WebView 中选定的文本

    据了解 这是难的 https stackoverflow com questions 4892111 android webview javascript getselection获取 WebView 中选定的文本 因为 WebView 文
  • 如何使CMake将导入目标的库路径嵌入到可执行文件中

    我的 C 可执行文件依赖于我已显式导入的 boost 正则表达式 但是 在链接阶段 CMake 不使用 Wl rpath path to my boost lib将 rpath 嵌入到我的项目可执行文件中 我怎样才能做到这一点 它确实将 r
  • Maven - 如何验证声明的存储库中可用的依赖项?

    我刚刚编辑了
  • 启动 OSX 时未使用 teamcity 代理运行 bash

    我有一个 shell 脚本startup sh执行以下操作 创建 RAM 磁盘并启动 teamcity 代理 bin bash DISK usr bin hdiutil attach nobrowse nomount ram 1677721
  • 何时使用 FOUNDATION_EXPORT?

    我有点困惑 我们什么时候应该在 Objective C 中使用 FOUNDATION EXPORT 其目的是什么 谁能用通俗的语言解释一下 谢谢 我们什么时候应该使用FOUNDATION EXPORT在 Objective c 中 每当您在
  • 鼠标位置到等距图块(包括高度)

    努力将鼠标的位置转换为网格中图块的位置 当一切平坦时 数学看起来像这样 this position x Math floor pos y 240 24 pos x 320 48 this position y Math floor pos
  • iPhone以编程方式裁剪方形图像以显示为圆形

    我正在尝试使用 iPhone 上相机胶卷中的图像为自定义样式 UIButton 创建图像 该按钮具有圆形背景 并且实际上显示为圆形 现在我需要将图像放在也显示为圆形的按钮中间 如何将方形 UIImage 剪切为圆形并在圆形区域之外具有透明度
  • iPad 方向检查 UIView 类?

    我有一个UIView我添加到我的主类中的类UIViewController我需要在应用程序启动时检查设备 iPad 的方向 在viewDidLoad方法 然而 由于该类是一个UIView not UIViewController 我不能使用
  • 使用 multers3 node.js 将图像上传到 DigitalOcean Spaces 时出现 SignatureDoesNotMatch:null 错误

    Error code SignatureDoesNotMatch extendedRequestId undefined message null name SignatureDoesNotMatch region null Load de
  • NUnit辅助线程异常

    我正在测试启动辅助线程的代码 并且这个线程有时会抛出异常 我想编写一个测试 如果没有正确处理该异常 该测试就会失败 我已经准备好了该测试 我在 NUnit 中看到的是 LegacyImportWrapperTests Import Exce