为什么要写测试?
- 谁想进行手动测试?
- 当你修复错误或添加新功能时,测试可以验证你在途中有没有破坏任何内容
- 如果你有明确的要求,则可以针对每个要求进行匹配测试
- 你不必害怕重构
- 测试记录了你的实施 - 它们向其他人展示了你的实施案例
- 这份清单无穷无尽…
测试驱动开发
简而言之,TDD的基本思想是在编写实际实现之前编写测试。也许这种方法最重要的好处是开发人员专注于编写与程序应该做的匹配的测试。如果测试是在实际实施之后编写的,那么测试的风险很高,这些测试只是为已经编写的逻辑显示绿灯。
测试是现代敏捷软件开发中的重要的一环,这就是为什么在Python学习路径中尽早开始思考TDD的重要性。
TDD的工作流程可归纳如下:
- 为你要实施的更改/功能/错误修复添加测试用例
- 运行所有测试并检查新测试是否失败
- 实施所需的更改
- 运行测试并验证是否全部通过
- 重构
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036
在Notebook中运行pytest
这些是在Jupyter单元格中运行pytest所需的步骤。您可以将此单元格的内容复制到包含测试的Notebook中。
# Let's make sure pytest and ipytest packages are installed
# ipytest is required for running pytest inside Jupyter notebooks
import sys
!{sys.executable} -m pip install pytest
!{sys.executable} -m pip install ipytest
import ipytest.magics
import pytest
# Filename has to be set explicitly for ipytest
__file__ = 'testing1.ipynb'
Pytest测试用例
让我们考虑一下sum_of_three_numbers
我们想要编写测试的函数。
如函数
#This would be in your e.g. implementation.py
def sum_of_three_numbers (num1 , num2 , num3 )中:
return num1 + num2 + num3
Pytest测试用例实际上与您在练习中看到的非常相似。通过将每个练习划分为三个单元格,大多数练习的结构类似于pytest测试用例:
- 设置测试中使用的变量
- 你的实现
- 使用断言验证你的实现是否符合要求
请参阅下面的示例测试用例,以了解练习与测试用例的常见结构之间的相似之处。
%%run_pytest[clean]
# Mention this at the top of cells which contain test(s)
# This is only required for running pytest in Jupyter notebooks
# This would be in your test_implementation.py
def test_sum_of_three_numbers():
# 1. Setup the variables used in the test
num1 = 2
num2 = 3
num3 = 5
# 2. Call the functionality you want to test
result = sum_of_three_numbers(num1, num2, num3)
# 3. Verify that the outcome is expected
assert result == 10
现在继续更改该行assert result == 10
,使断言无法看到失败测试的输出。
PS:Pytest有一个很重要的功能叫做Fixture:
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
9234905128)]
[外链图片转存中…(img-2usAZYg9-1719234905128)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!