C# 中单元测试的生命周期是怎样的

2024-01-15

完整事件的顺序是什么MSTest在 Visual Studio 中用 C# 运行单元测试(Ctrl+R、A)?

到目前为止我的想法是:

  • 1 - 跑步[AssemblyInitialize]
  • 2 - 随机运行[ClassInitialize]
  • 3 - 运行班级[TestInitialize]
  • 4 - 随机运行[TestMethod]从那个班级
  • 5 - 运行班级[TestCleanup]
  • 对类中的每个 TestMethod 重复 3 到 5
  • 对每个测试类重复 2 到 5
  • 6 - 运行所有课程[ClassCleanup] methods
  • 7 - 跑步[AssemblyCleanup]

但我认为VS可能会一次初始化多个类,然后随机运行TestMethods。测试是否应该在同类或整个测试项目甚至整个解决方案中保持自主?了解事件的确切顺序应该可以回答这些问题。

UPDATE:

我做了一些测试,发现这确实是事件发生的顺序,除了 #3 到 5 之外,其中任何类的任何测试都可以运行。 Visual Studio 似乎一次顺序运行一个测试。然而,由于接受的答案中解释的原因,不应依赖这一点。


你是对的。这确实是代码运行的顺序。但是,由于测试应该完全独立,因此不能保证它们将按顺序运行并且它们将在单个线程上运行。该框架可以同时运行多个测试。

如果您也需要,您可以通过使用测试用例强制执行特定的测试顺序,但这被认为是不好的做法,因为测试用例应该用于将测试重新组合在一起(标记它们)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中单元测试的生命周期是怎样的 的相关文章

  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 工作流程系统中的单元/自动化测试

    您是否对像 K2 这样的复杂工作流程系统进行自动化测试 我们正在构建一个在 Sharepoint 2007 和 K2 之间进行广泛集成的系统 我什至无法想象从哪里开始自动化测试 因为工作流程涉及多个用户与 Sharepoint K2 工作流
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 如何让 Visual Studio Team Foundation Server 查看我将代码移至其他文件夹?

    我将一些代码从 C 驱动器移至 D 驱动器 当我打开解决方案时 它告诉我 该解决方案似乎处于源代码控制之下 但其绑定 找不到信息 因为无法恢复 自动丢失信息 其绑定的项目 丢失将被视为不受源代码控制 所以我尝试永久删除绑定并下载最新版本 现
  • 重载<<的返回值

    include
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • onclick="parent.location 在 Firefox 和 Chrome 中不起作用

    a a table class SectionHeader1 tbody tr td Customer Information td tr tbody table table class TheBox align center tbody
  • 无法使用反射和 .NET 5 顶级调用找到 Main 方法

    var pt Type GetType
  • 时间范围内的“一对多”关系完整性问题

    假设我有这样的表 CREATE TABLE foo id SERIAL PRIMARY KEY barid integer NOT NULL REFERENCES bar id bazid integer NOT NULL REFERENC
  • 为什么 CPU 上的 Keras LSTM 比 GPU 上快三倍?

    I use 这本来自 Kaggle 的笔记本 https www kaggle com sbongo for beginners tackling toxic using keras运行 LSTM 神经网络 我已经开始训练神经网络 我发现它
  • 注册令牌不是有效的 FCM 注册令牌

    我正在尝试使用从 Android 设备的 PassWallet 应用程序中保存的票证中获取的令牌向我的设备发送消息 该设备使用苹果钱包规范发 送更新通行证所需的所有信息 但是 我使用 FCM 发送通知 但收到此错误 注册令牌不是有效的 FC
  • Windows:如何将驱动器符号链接到另一个驱动器?

    我有一个客户 其数据已从 H 驱动器移至 I 驱动器 但他们的 Access 导出脚本似乎已将 H 驱动器硬编码为目标 即使它不再存在于新系统上 如何创建映射到 I 驱动器的 H 驱动器 我是一个 unix linux 人 我猜是这样的mk
  • 在.NET Core中编译Sass文件

    我正在尝试将 Sass 文件添加到 Visual Studio 2017 中的 NET Core 应用程序中 但是 在创建 scss 文件后 我找不到任何方法来编译它们 我筛选了 NPM 和 Bower 但都没有提供对 Sass 的支持 添
  • 如何在 Visual Studio 中禁用自动插入的“内联”关键字?

    我喜欢移动定义位置Visual Studio 2015 的重构功能除了一件事之外 它会自动插入inline关键字位于函数定义之前 所以我总是不得不自己删除它们 是这样的 重构之前 class GameLoop public void dra
  • 如何从 highstock 图表中提取数据

    假设我有一个示例 highstock 图表 例如this http www highcharts com stock demo basic line在网站中 我想知道是否可以单独从图表中提取数据 即图表是由第三人创建的 并且其他人无法访问图
  • python cdll找不到模块

    我有一个由两个 dll 文件和一个 python 包装器组成的库 我目前的代码基于这三个文件 它们与我的主 python 文件位于同一父目录中 我现在尝试在继续开发之前重构一些东西 并希望将所述库代码移动到它自己的 lib 目录中 不幸的是
  • PowerShell 中从第一个到倒数第二个的数组索引

    如何获取从第一个到倒数第二个的数组元素范围 例如 array 1 2 3 4 5 array 0 will give me the first 1 array 2 will give me the second last 4 array 0
  • Windows Phone 7 SQL Server CE 行版本

    我在 Windows Phone 7 上的 SQL Server CE 中更新表时遇到问题 当我调用提交更改时 应用程序将关闭 没有任何异常或错误 Visual Studio 甚至仍在运行 删除rowversion专栏解决了这个问题 我环顾
  • 使用 ng-switch 时如何防止控制器重新加载

    在此示例中 使用 ng switch 我可以在不同视图之间切换 每个视图都分配有一个控制器 我在网上放了一个快速示例 http jsfiddle net FBHjZ 1 http jsfiddle net FBHjZ 1 看起来每次我切换视
  • ASP.NET MVC 项目和 App_Code 文件夹

    为什么 VS 解决方案资源管理器的 添加 ASP NET 文件夹 子菜单中没有选择 App Code 我知道您可以通过重命名新文件夹来手动创建一个新文件夹 但这里的理由是什么 这不是你应该放置 实用程序 或 服务层 类型类的地方吗 关于 M
  • 没有为类型定义序列化程序:System.Windows.Media.Media3D.Point3D

    我正在尝试使用 protobuf 网络序列化一些数据 在序列化过程中 我收到一条错误 指出没有为 Point3D 类型定义序列化 我发现一个类似的问题 但仍然无法实施和解决 链接如下 没有为类型定义序列化器 System Drawing C
  • 如何使用python将流上传到AWS s3

    我想创建一个从 S3 获取 zip 文件 可能包含 csv 文件列表 的 lambda 将其解压缩并上传回 s3 由于 lambda 受到内存 磁盘大小的限制 我必须将其从 s3 流式传输并返回到其中 我使用 python boto3 请参
  • 具有分段文件上传功能的 Spring REST API 不适用于可选参数

    我正在使用Spring框架 但不太熟悉它 我正在编写一个 REST API 特别是一个处理文件上传的 POST 方法 其中文件是可选的 我尝试简化该方法 但仍然存在问题 这是我所拥有的 RequestMapping method Reque
  • 如何将 javascript 转换为 LLVM IR?

    是否有 JavaScript 的 LLVM 后端 如果没有 其他将动态语言 类似于 javascript 转换为 LLVM IR 的工具也可以 因为我正在编写一个动态语言编译器 这样的工具可以帮助我找出一些功能是如何实现的 FTL JIT
  • R - “princomp”只能与比变量更多的单位一起使用

    我正在使用 R 软件 R Commander 对我的数据进行聚类 我的数据有一个较小的子集 包含 200 行和大约 800 列 尝试 kmeans 聚类并在图表上绘制时出现以下错误 princomp 只能与比变量更多的单位一起使用 然后我创
  • C# 中单元测试的生命周期是怎样的

    完整事件的顺序是什么MSTest在 Visual Studio 中用 C 运行单元测试 Ctrl R A 到目前为止我的想法是 1 跑步 AssemblyInitialize 2 随机运行 ClassInitialize 3 运行班级 Te