Python 单元测试应该位于单独的模块中吗?

2023-12-29

对于放置 Python 单元测试的最佳位置是否存在共识?

单元测试是否应该包含在与正在测试的功能相同的模块中(当模块单独运行时执行(if __name__ == '__main__'等)),还是包含不同模块的单元测试更好?

也许两种方法的组合是最好的,包括每个模块内的模块级测试,并添加更高级别的测试,这些测试将多个模块中包含的功能作为单独的模块进行测试(可能在 /test 子目录中?)。

我认为如果测试包含在单独的模块中,测试发现会更直接,但是如果开发人员必须记住在修改被测模块时更新附加测试模块,那么开发人员就会承担额外的负担。

我很想知道人们对组织单元测试的最佳方式的想法。


是的,请使用单独的模块。

使用__main__诡计。假设你有几个文件在你的模块中,它不再工作了,因为你不想运行每个源文件测试模块时单独进行。

另外,在安装模块时,大多数时候你不想安装测试。您的最终用户不关心测试,只有开发人员应该关心。

不完全是。将您的测试放入tests/,您的医生在doc,并准备好一个 Makefilemake test。任何其他方法都只是中间解决方案,仅对特定的微型模块有效。

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

Python 单元测试应该位于单独的模块中吗? 的相关文章

随机推荐

  • 我怎样才能让 Modelsim 警告我有关“X”信号的信息?

    我正在使用 Modelsim 进行大型设计 我已经了解了 modelsim 模拟的工作方式 我想知道 是否有一种方法可以在 modelsim 在仿真阶段评估信号并发现它是红色信号 即 X 时向我发出警告 要知道 不可能列出设计的所有信号并一
  • Rails 4:SQLException:没有这样的表:

    我在 Rails4 中运行以下命令 bundle exec rake db migrate 201405270646 AddAttachmentImageToPins 迁移 change table pins 耙子中止 StandardEr
  • 通过扬声器的 AVAudioPlayer

    我得到以下代码 id init if self super init UInt32 sessionCategory kAudioSessionCategory MediaPlayback AudioSessionSetProperty kA
  • 选中复选框时动态更改引导程序进度条值

    我正在尝试制作一个带有引导进度条的动态清单 这是我的标记代码 div class progress progress striped active div class progress bar div div div class row t
  • 如何在TF2.0中创建具有自定义渐变的keras层?

    由于在 TensorFlow 2 0 中 他们计划统一 keras 下的所有高级 API 我不太熟悉 并完全删除会话 我想知道 如何创建具有自定义渐变的自定义 keras 层 我见过 相当有限 guide https keras io la
  • UISearchBar 横向宽度错误

    当您以横向模式启动时 我的搜索栏稍微向右拉伸得太远 如果您随后旋转到纵向模式 它仍然有点太宽 但是 如果您以纵向模式开始 然后将其旋转为横向模式 也可以 这是我的代码 sBar UISearchBar alloc initWithFrame
  • 如何使用 php 生成带有肥皂信封和正文标记的 XML

    我无法使用 Soap Envelope 和 Body Tag 生成 XMl 这是代码 rootElement XMLDoc gt createElement AddDetails rootNode XMLDoc gt appendChild
  • 如何对使用 Popen 的函数进行单元测试?

    我正在编写一个包含大量文件操作的程序 一些操作是通过调用来完成的subprocess Popen eg split l 50000 filename gzip d f filename filename 现在我想对程序的功能进行单元测试 但
  • 递归函数的产量

    我正在尝试对给定路径下的所有文件执行某些操作 我不想事先收集所有文件名然后对它们执行某些操作 所以我尝试了以下方法 import os import stat def explore p s list os listdir p for a
  • 如何进行MultiLabel分层抽样?

    我正在处理多标签数据 我想使用分层采样 假设我有 10 个类 我们将它们称为 ABCDEFGHIJ 我有一个包含 10 列的数据框 对应于每个标签 其中包含有关条目的其余信息 我可以在 n entry 10 矩阵中提取这 10 列 我将其称
  • 如何设置不同的列表选择器

    mainListView setOnItemClickListener new AdapterView OnItemClickListener Override public void onItemClick AdapterView
  • 通过 winreg 查找 perfmon 计数器 id

    我有一个通过 winreg h 中公开的 API 收集 Perfmon 计数器值的应用程序 为了收集 Perfmon 计数器值 我必须调用RegQueryValueExW传递我感兴趣的 Perfmon 计数器的 id 为了获取该 ID 我需
  • 实体属性值 (EAV) 的替代方案?

    我们的数据库是基于EAV 实体 属性 值 模型设计的 那些使用过 EAV 模型的人都知道为了灵活性而带来的所有废话 我问我的客户为什么使用EAV模型 灵活性 他们的回答是 他们的实体随着时间的推移而改变 因此 今天他们可能有一个包含一些属性
  • 在javascript中设置CSS渐变?

    所以我一直在尝试用javascript设置渐变 以便它具有鼠标悬停效果 但我没有运气 无法让它工作 这是我的javascript function mouseOVER x x backgroundImage webkit gradient
  • 将两个具有许多稀疏列的 Pandas DataFrame 合并会产生一个需要不成比例的大量内存的 DataFrame

    当合并两个稀疏数据帧时 生成的数据帧在内存中变得不成比例的大 我想知道为什么会这样 新数据帧上的操作非常慢 我尝试了不同的方法来减少内存占用 但没有成功 例如 使用不同的 fill values 0 或 0 0 在密集列和稀疏列之间来回转换
  • 如何将数据库备份文件 (.bak) 从 SQL Server 2012 还原到 SQL Server 2008 Express?

    最初来自 SQL Server 2008 的数据库已恢复到 SQL Server 2012 已制作 SQL Server 2012 的备份 我正在尝试在本地 SQL Server 2008 Express 上恢复它 但是我收到错误 指定的转
  • 视频和音频帧的PTS和DTS计算

    我正在从两个不同的线程接收视频 H264 编码数据和音频 G 711 PCM 编码数据以进行复用 写入mov多媒体容器 writer 函数签名如下 bool WriteAudio const unsigned char pEncodedDa
  • 用于计算设置表宽度的可变列宽度的算法

    我需要找出一种算法来计算列宽的优化大小 给出以下内容 表格的宽度固定为页面的大小 列内的数据将是可变的 因此列的宽度是可变的 必须优化宽度以了解何时换行以及何时不换行 因此给出以下数据 From gt 03 06 2014 To gt 03
  • 带有 Eclipse Indigo 的 gwt-maven-plugin

    我只想在 Eclipse 中设置一个新的 GWT 项目并使用 Maven 来处理所有的 jar 丛林 我使用了 gwt maven pluginthis http mojo codehaus org gwt maven plugin use
  • Python 单元测试应该位于单独的模块中吗?

    对于放置 Python 单元测试的最佳位置是否存在共识 单元测试是否应该包含在与正在测试的功能相同的模块中 当模块单独运行时执行 if name main 等 还是包含不同模块的单元测试更好 也许两种方法的组合是最好的 包括每个模块内的模块