用 Python 编写单元测试:如何开始? [关闭]

2023-12-11

我用 Python 完成了第一个正式项目,现在我的任务是为其编写测试。

由于这是我第一次做一个项目,这也是我第一次为其编写测试。

问题是,how我开始吗?我完全不知道。任何人都可以向我指出一些文档/教程/链接/书籍,我可以用它们来开始编写测试(我想特别是单元测试)

关于这个主题的任何建议都将受到欢迎。


如果您是使用单元测试的新手,那么最简单的学习方法通​​常是最好的。在此基础上我建议使用py.test而不是默认值unittest module.

考虑这两个示例,它们执行相同的操作:

示例 1(单元测试):

import unittest

class LearningCase(unittest.TestCase):
    def test_starting_out(self):
        self.assertEqual(1, 1)

def main():
    unittest.main()

if __name__ == "__main__":
    main()

示例 2(pytest):

def test_starting_out():
    assert 1 == 1

假设两个文件都命名为test_unittesting.py,我们如何运行测试?

示例 1(单元测试):

cd /path/to/dir/
python test_unittesting.py

示例 2(pytest):

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

用 Python 编写单元测试:如何开始? [关闭] 的相关文章

  • pandas 读取列中带有额外逗号的 csv

    我正在阅读一个基本的 csv 文件 其中各列用逗号分隔 列名称如下 userid username body 但是 正文列是一个可能包含逗号的字符串 显然这会导致一个问题 pandas 会抛出一个错误 CParserError Error
  • 使用不带引号的块样式的 Python YAML 转储

    如何使用 PyYAML 加载和转储 YAML 以便它尽可能地使用原始样式 我有 Python 来加载和转储 YAML 数据 例如 import sys import yaml def represent dictorder self dat
  • 如何在redis中使用python删除排序集中的项目

    如何使用 python 删除排序集中大于某个值的项目 key foo pipe redis master conn pipeline pipe zadd key 1 a pipe zadd key 2 b pipe zadd key 3 c
  • 如何在嵌套列表中查找给定元素?

    这是我的迭代解决方案 def exists key arg if not arg return False else for element in arg if isinstance element list for i in elemen
  • 并行执行按位运算的代码

    我有这段代码 通过将该 AU 矩阵的每个字节 8 个元素打包到 A 中来减少内存消耗 从而使 100k 200k 矩阵占用更少的空间 正如您所期望的 这段代码需要永远运行 我也计划将行数增加到 200k 我正在一个非常强大的实例 CPU 和
  • 如果每个元组中的第二项重复,如何从元组列表中删除元素?

    如果每个元组中的第二项重复 如何从元组列表中删除元素 例如 我有一个按第一个元素排序的列表 如下所示 alist 0 7897897 this is a foo bar sentence 0 653234 this is a foo bar
  • 映射 2 个数据帧并替换目标数据帧中匹配值的标头

    我有一个数据框 df1 SAP Name SAP Class SAP Sec Avi 5 C Rison 6 A Slesh 7 B San 8 C Sud 7 B df2 Name Fi Class Avi 5 Rison 6 Slesh
  • 如何为 PyYAML 编写代表程序?

    我想要一个自定义函数来序列化任意 python 对象 就像 json dump 函数有一个名为 default 的可选参数 如果对象不是 json 可序列化的 它应该是 json 转储器将调用的函数 我只是想从 json 包中执行相当于此操
  • python 函数中的对象不可迭代错误

    我有一个简单的功能如下 comdList range 0 27 for t in comdList print t 但是它返回一个 in object not iterable 错误 在函数之外它工作正常 这是怎么回事 尝试这个 for t
  • 使用私有构造函数的 C# 单元测试类?

    好吧 我刚刚收到一个作业 我必须对具有私有构造函数的类执行单元测试 现在 当所有方法也都是非静态时 我该如何在不初始化类的情况下进行单元测试 有什么方法可以对具有私有构造函数的类进行单元测试 无需反射 如果您无法将类公开 您仍然可以通过以下
  • 基于 Pandas 中特殊字符分隔列中的每个项目进行聚合

    我输入的数据如下 Date Investment Type Medium 1 1 2000 Mutual Fund Stocks Fixed Deposit Real Estate Own Online Through Agent 1 2
  • 识别文本中的多个类别和相关情感

    如果您有一个文本语料库 如何识别所有类别 来自预定义类别列表 以及与之相关的情绪 正面 负面写作 我将在 Python 中执行此操作 但现阶段我不一定要寻找特定于语言的解决方案 让我们用一个例子来看看这个问题 试图澄清我的问题 如果我有一整
  • numpy.polyval() 的反函数

    我想知道 np polyval 是否有一个方便的反函数 我在其中给出 y 值并求解 x 我知道我可以做到这一点的一种方法是 import numpy as np Set up the question p np array 1 1 10 y
  • 如何循环遍历列表中除最后一项之外的所有项? [复制]

    这个问题在这里已经有答案了 Using a for循环 如何循环遍历列表中除最后一项之外的所有项 我想遍历一个列表 检查每个项目与后面的项目 我可以在不使用索引的情况下做到这一点吗 for x in y 1 If y是一个生成器 那么上面的
  • 从Python列表中挑选出具有特定索引的项目

    我确信在 Python 中有一种很好的方法可以做到这一点 但我对这门语言还很陌生 所以如果这是一个简单的方法 请原谅我 我有一个列表 我想从该列表中挑选某些值 我想要挑选的值是列表中索引在另一个列表中指定的值 例如 indexes 2 4
  • 如何隐藏 Tkinter python Gui

    有人知道如何隐藏 python GUI Tkinter 我已经创建了键盘记录器 对于 GUI 我使用了 python 模块 Tkinter 我想添加名为 HIDE 的按钮 因此当用户单击它时 它将隐藏 GUI 当用户按下 CTRL E 之类
  • Python for 循环前瞻

    我有一个 python for 循环 其中我需要向前查看一项以查看在处理之前是否需要执行某项操作 for line in file if the start of the next line 0 perform pre processing
  • 如何使用 opencv python 根据检测到的物体的位置生成其热图

    我需要根据对象的位置生成其热图 示例 视频帧中检测到的绿色球 如果它长时间停留在某个位置 那么该位置应该是红色的 并且球在短时间内经过的帧中的位置必须是蓝色的 这样我就需要生成热图 提前致谢 那么你在这里可以做的是 1 首先定义一个热图作为
  • 如何让 Python 生成器返回 None 而不是 StopIteration?

    我使用生成器在列表中执行搜索 如下简单示例 gt gt gt a 1 2 3 4 gt gt gt i for i v in enumerate a if v 4 next 3 只是为了稍微说明一下示例 与上面的列表相比 我使用的列表要长得
  • Maya python 连接选择的属性

    我一直在尝试制作一个简单的脚本 它将采用两个视口选择 然后基本上将第二个视口的旋转连接到第一个 我不确定如何正确地从视口选择中为对象创建变量 这是我的尝试 但不起作用 import maya cmds as cmds sel cmds ls

随机推荐

  • 内核启动和内核执行之间的时间

    我正在尝试使用 VS 2010 的 Parallel Nsight 2 1 版本来优化我的 CUDA 程序 我的程序在带有 GTX 480 板的 Windows 7 32 位 机器上运行 我已经安装了 CUDA 4 1 32 位工具包和 3
  • 为什么 self.kill() 不从组中删除对象?

    我不久前问过这个问题 但答案并不完全有帮助 而且我不相信我发布了最小的可重现示例 一段时间 self lifetime 过去后 我试图杀死我的子弹 self kill 命令被执行 但它并没有从相机组中删除子弹 这就是我用来绘制所有子弹的 相
  • 从其他类对 WinForm 控件进行线程安全更新

    有人可以帮我解决以下问题吗 有两个类 MainForm 和 LWriter 下面是 LWriter 中的一个方法 除了写入文件之外 还向 RichTextBox 控件发送一些更新 通过 mainForm UpdateLog text 一切工
  • JavaScript 函数类似于 Python range()

    JavaScript 中是否有类似于 Python 的函数range 我认为应该有比每次都写以下几行更好的方法 array new Array for i 0 i lt specified len i array i i 对于 ES6 中非
  • 从提升的会话启动非提升的提示

    我有一些工具如果从提升的会话运行则无法工作 我正在运行提升的会话 在管理安装的上下文中 因此这是强制性的 因此这是不可更改的 除了创建计划任务并执行它之外 还有什么更快或更友好的方法吗 编辑 这是需要未提升运行的命令 vboxmanage
  • 在输入时将动画添加到边框底部

    我希望输入的边框底部颜色在单击时随动画变化 与黄线一类似 我希望它出现在所有输入框和选择上 input container display inline block text align center awsome input paddin
  • 读取 XML 数据时超出了最大字符串内容长度配额 (8192)

    我正在尝试将一个大字符串 24 000 到 50 000 个字符 传递给自托管 TCP WCF 服务 我已将 maxStringContentLength 所有位置 提高到 22008192 我在某处读到我需要将绑定配置更改为 LargeB
  • 列名称为 END 的“END 处或附近存在语法错误”

    我在 MYSQL 中有一个表 必须在 postgresql 中转换它 我正在使用以下命令来创建表 create table emp COMPLETE BOOLEAN NOT NULL END BOOLEAN NOT NULL 我得到的错误是
  • 为什么在 Java 中用接口名称来声明变量? [复制]

    这个问题在这里已经有答案了 这是一个真正的初学者问题 我仍在学习 Java 基础知识 我可以 某种程度上 理解为什么方法会返回 List 而不是 ArrayList 或者为什么它们会接受 List 参数而不是 ArrayList 如果它对方
  • android studio中找不到R类

    在旧版本的 Android Studio 中 我曾经能够导航到 java 生成 包并查看 R 类 我使用的是 Android studio 4 1 在 Java 生成的包中看不到 R 类 知道为什么吗 我在哪里可以找到 R 类 附 我重建了
  • GOF 中提到的可插拔适配器

    Stack Overflow 上与此主题相关的帖子 Post 1 and Post 2 上面的帖子很好 但我仍然无法解答我的困惑 因此我将其作为新帖子放在这里 我的问题基于 GOF 的可重用的面向对象软件的元素关于可插拔适配器的书籍内容 在
  • 如何安排python脚本在给定时间退出

    我需要安排一个 python 脚本 它可以在给定时间退出并自行终止 对于调度 我使用 pythonschedule下面是代码 import schedule from threading import Thread import time
  • 如何访问 iPhone 的通话记录/历史记录

    这是针对越狱的 iPhone 的 有没有办法可以访问 iPhone 上的 call history db 这是苹果记录电话信息的数据库 它存储在 private var mobile Library CallHistory 目录中 当我尝试
  • 如何对 Flask 端点进行 pytest

    我开始使用 Flask 和 Pytest 来通过单元测试实现休息服务 但我遇到了一些麻烦 我想为我的简单端点做一个简单的测试 但我不断得到一个Working outside of application context 运行测试时出错 这是
  • 程序化 Dojox 上传器 - ajax 上传不起作用

    我找不到任何有关以编程方式创建 dojox form Uploader 的文档 我自己尝试过 但看起来插件注册机制不知何故被破坏了 require dojo dom construct dijit form Button dojox for
  • 无法在 M1 Mac 上导入 Pygame.mixer

    运行代码时import pygame mixer 或任何其他引用 pygame mixer 的内容 在 2021 M1 MacBook Air 上运行命令后python3 我收到错误ModuleNotFoundError No module
  • 时间:2019-03-17 标签:c#controlnames

    有没有办法控制 Net 如何设置Name and ID我的控件的属性 我有一些单选按钮 我需要其名称相同 但是如果我设置ID单选按钮控件的属性 它设置Name和ID 我看不出有什么办法可以治疗ID and Name分别地 所以现在所有按钮的
  • 使用Reflection解析函数/方法内容

    我的单元测试框架由 TestFixtures TestMethods 和 Actions 组成 Action是TestMethod内部额外的一个较小的容器 Actions来自我们公司内部编写的Dll 操作在方法内部使用 如下所示 Test
  • 让两个对象在 SwingBot 中移动

    我试图做到这一点 以便在按下命令时两个形状都会移动 我的问题是 如何让蓝色多边形与黄色矩形一起移动 无论我做什么 我似乎都无法弄清楚 任何帮助表示赞赏 谢谢 EDIT 删除了计时器代码 它是为了不同的东西 import javax swin
  • 用 Python 编写单元测试:如何开始? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我用 Python 完成了第一个正式项目 现在我的任务是为其编写测试 由于这是我第一次做一个项目 这也是我第一次为其编写测试 问题是 how我开始吗 我完全不知道 任何人都可以向