如何用python编写函数的测试函数,无需类
我想测试一个函数,看看它是否工作正常 我找到了很多答案, 但是它们都在某个类下编写测试函数,而我的函数不是任何类的成员 例如,我在readTool.py下有:如何用python编写函数的测试函数,无需类,python,unit-testing,testing,automated-tests,Python,Unit Testing,Testing,Automated Tests,我想测试一个函数,看看它是否工作正常 我找到了很多答案, 但是它们都在某个类下编写测试函数,而我的函数不是任何类的成员 例如,我在readTool.py下有: def extract_frame_dr(dr, frameID): return dr[0, frameID], dr[1, frameID] 如何为它编写测试\u提取\u帧\u dr? 我想拥有以下特点: 一次运行readTool.py中的所有测试,而不在主函数中逐个调用它们 谢谢您可以使用函数编写非常清晰的测试。为此, 使
def extract_frame_dr(dr, frameID):
return dr[0, frameID], dr[1, frameID]
如何为它编写测试\u提取\u帧\u dr?
我想拥有以下特点:
一次运行readTool.py中的所有测试,而不在主函数中逐个调用它们
谢谢您可以使用函数编写非常清晰的测试。为此,
test_y()
函数创建test_x.py
模块,并使用python-m pytest
运行它们。
│ setup.py
│
├───我的包裹
│ readTool.py
│ __初始值
│
├───测验
│ test_readtool.py
│
└───文夫
其中setup.py
是一个用于使软件包可安装的文件。在本例中,文件内容仅为
导入设置工具
setuptools.setup(
name='mypackage',
packages=setuptools.find_packages(),
)
您可能还想创建一个虚拟环境(venv
),激活它,然后在可编辑状态下安装软件包(mypackage
)
pip install -e .
然后,安装pytest
pip install pytest
(有关使用setup.py
的更多信息,请参阅示例)
2.用函数测试函数
写入测试/test\u readtool.py
:
从mypackage.readTool导入提取\u帧\u dr
def test_extract_frame_dr():
帧id=1963
何医生={
(0,帧id):“William Hartnell”,
(1,帧号):“Patrick Troughton”,
}
extracted=extract\u frame\u dr(dr\u who,frame\u id)
断言提取[0]=“William Hartnell”
断言提取[1]=“Patrick Troughton”
并使用
python -m pytest
(仅运行pytest
时,您可能会遇到ModuleNotFoundError
s)
3.测试模块和功能的自动发现
这是。只是
- 将测试文件放入
目录\tests\
- 将您的测试模块命名为
其中test_x.py
一个好的惯例是使用您正在测试的模块/包的名称x
- 将测试函数命名为
,其中test_y()
好的惯例是为测试编写一个简短的描述y
x,y=extract\u frame\u dr(dr,frameID)
。请注意,单词测试被忽略了