Python单元测试中setUp()和setUpClass()有什么区别?

2024-03-16

有什么区别setUp() and setUpClass()在Python中unittest框架?为什么要使用一种方法而不是另一种方法来处理设置?

我想了解设置的哪一部分是在setUp() and setUpClass()函数,以及tearDown() and tearDownClass().


当您的类中有多个测试方法时,这种差异就会显现出来。setUpClass and tearDownClass为全班运行一次;setUp and tearDown在每个测试方法之前和之后运行。

例如:

class Example(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print("setUpClass")

    def setUp(self):
        print("setUp")

    def test1(self):
        print("test1")

    def test2(self):
        print("test2")

    def tearDown(self):
        print("tearDown")

    @classmethod
    def tearDownClass(cls):
        print("tearDownClass")

当您运行此测试时,它会打印:

setUpClass
setUp
test1
tearDown
.setUp
test2
tearDown
.tearDownClass

(点(.) are unittest测试通过时的默认输出。)观察setUp and tearDown出现在之前和之后test1 and test2, 然而setUpClass and tearDownClass仅出现一次,在整个测试用例的开头和结尾。

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

Python单元测试中setUp()和setUpClass()有什么区别? 的相关文章

随机推荐

  • 如何在 XSLT 处理器中使用 HTML5 的“about:”协议

    HTML5 草案指定 http dev w3 org html5 spec Overview html about 3alegacy compat 至少目前 URIabout legacy compat可用于依赖于符合 XML 的文档类型
  • 非虚拟和抽象方法的命名约定[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常发现自己创建使用这种形式 A 的类 abstract class Animal public void Walk TODO do some
  • FastAPI异步后台任务会阻塞其他请求吗?

    我想在 FastAPI 中运行一个简单的后台任务 其中涉及一些计算 然后将其转储到数据库中 但是 计算会阻止它接收更多请求 from fastapi import BackgroundTasks FastAPI app FastAPI db
  • Swings ImageIcon 构造函数非常慢

    编辑 请参阅对此答案的评论以获取此问题的答案 TLDR 瓶颈是缩放图像 但分析显示这是 ImageIcon 构造函数中的问题 java version Picked up JAVA OPTIONS Dswing aatext true Da
  • 为什么我在安装 gem 时收到“权限被拒绝”错误?

    我正在尝试安装 Jekyll 运行后gem install jekyll我收到此错误 ERROR While executing gem Errno EACCES Permission denied usr local lib ruby g
  • Firebase 实时数据库 API 中的“set”和“update”有什么区别?

    正如标题所说 我无法理解之间的区别update and set 此外 文档也无法帮助我 因为如果我使用 set 代替 更新示例的工作原理完全相同 The update文档中的示例 function writeNewPost uid user
  • Android getsupportedvideosizes 在模拟器上返回 null

    我尝试在模拟器中获取支持的视频大小 如下所示 但它总是返回 null 为什么会这样 我在 4 03 中尝试过 提前致谢 Camera camera Camera open android hardware Camera Parameters
  • 无法从 $injector.get() 获取服务实例

    我定义了一个名为 greeting 的客户服务 但无法从 injector get greeting 获取该实例 它会抛出这样的错误 未知提供者 greetingProvider 那么哪种方式才是正确的获取方式呢 以下是代码 var app
  • 更改 y 对数刻度 imshow()

    我正在尝试根据周期绘制 y 尺度的频谱图 所以我想要一个反转的对数尺度 事情是 我找到了如何使用pcolormesh 不是通过使用imshow imshow 似乎比pcolormesh 这对我来说 是一个非常喜欢它的理由 我错过了什么 我不
  • 如何在 SQL Server 和 C# 中加快读取大量数据的速度

    我的数据库中有一个包含大约 200k 条目的视图 我正在使用以下代码阅读它 using SqlConnection conn new SqlConnection conn Open string query SELECT FROM SP3D
  • Perl:写入速度之谜?

    输出速率怎么可能高于硬盘写入速率呢 Update 1 我更改了以下内容 关闭了防病毒软件 不用找了 插入新的物理磁盘并使用第一个分区 为了测试 初始测试的磁盘位于 最后一个分区 与系统分区分开 但是 在同一物理磁盘上 结果 有相同的 循环模
  • 使用自定义端点的 to.minutes

    我使用的是从上午 9 50 开始的日内数据 并希望将其转换为 20 分钟的时间间隔 因此第一个时间段是从 09 50 到 10 09 59 第二个时间段是从 10 开始 10 至 10 29 59 等 但是to minutes 来自xts软
  • F# 的隐藏功能

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 这是类似的毫不掩饰的尝试C https stackoverflow com questions
  • 为什么简单的网站在移动设备(至少是 iOS Safari 和 Chrome)上会崩溃?

    我有一个非常简单但又很长的网站 有很多可以滚动浏览的文本 这是一个文档网站 考虑到内容的性质 很多简短的相似条目 我决定立即显示所有内容 因此用户可以从一个条目滚动到另一个条目 也可以通过侧边栏索引进行导航 这是我喜欢的常见文档模型 例如下
  • 外部范围不再适用于 ui-grid

    我正在将 ui grid 从 v3 0 0 RC 18 升级到 v3 0 0 rc 20 76029e7 突然 external scopes 属性停止工作 有什么替代方案吗 externalScopes在 RC 19 中被删除 您可以在此
  • Angular - 使用 \n 渲染 Markdown

    我正在尝试在 Angular 应用程序中渲染 Markdown 我正在使用ngx markdown https github com jfcere ngx markdown与 Angular 5 一起使用 效果很好 但是 我必须升级到 An
  • 在 300 万个文本文件中搜索匹配项 [已关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个简单的要求 用户输入一堆单词 系统扫描超过 300 万个文本文件并找到包含这些关键字的文件 在没有复杂的搜索 索引算法的情况下实现这
  • 使用样式表设置 QGroupBox 标题字体大小

    我希望能够使用样式表设置 QGroupBox 标题的字体大小 我似乎无法弄清楚 根据我读过的内容here http qt project org doc qt 4 7 stylesheet examples html id bfd71794
  • Ansible:无法设置变量以顺序执行

    我正在尝试构建一个带有滚动更新用例 顺序执行 的剧本serial元素 由于我必须在剧本中的多个位置使用序列值 因此我想将其用作变量 可用于将某处定义为组变量 库存档案 all webserver1 ansible host 10 1 1 1
  • Python单元测试中setUp()和setUpClass()有什么区别?

    有什么区别setUp and setUpClass 在Python中unittest框架 为什么要使用一种方法而不是另一种方法来处理设置 我想了解设置的哪一部分是在setUp and setUpClass 函数 以及tearDown and