使用IDEA写Python之pytest环境搭建及第一个程序编写
2024-08-25 06:55:53
一、准备篇
Python环境:3.8.3
开发工具:IDEA,对你没有看错
二、IDEA下安装开发环境
1. python的下载
https://www.python.org/downloads/
PS:关于Python的环境搭建,此处略
2. idea下python插件的安装
点击File->Settings...->Plugins,点击marketplace选项卡,在里面搜索python,如下图所示:
点击install,重启即可。
3. idea下的配置
File->New->Project,可以看到左边的项目类型中多了一个python。点击它
如果你的电脑中已经安装过了python的环境,它会自动检测SDK。如果没有安装,这里推荐使用Anaconda,安装与配置方法请移步python神器——Anaconda。
三、pytest简介
pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点:
- 简单灵活,容易上手,文档丰富;
- 支持参数化,可以细粒度地控制要测试的测试用例;
- 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);
- pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等;
- 测试用例的skip和xfail处理;
- 可以很好的和CI工具结合,例如jenkins
1、安装pytest
pip install -U pytest
安装成功,如下图所示:
2、检查pytest安装版本
pytest --version
验证成功,如下图所示:
3、编写第一个测试函数
创建名为start.py,具体示例如下:
# 创建第一个测试函数
def add(x):
return x + 6 def test_result():
assert add(6) == 12
注意:测试函数必须以test_+函数名命名,否则不执行
4、执行测试
4.1、命令行形式执行
定位start.py同级目录下,输入如下命令,可执行测试函数
pytest start.py
执行成功,如下图所示:
这个测试的结果是失败的,因为add(6)的返回值不是11,导致断言失败
4.2、用编译器执行
我们学习pytest的时候,很多时候通过cmd命令去执行用例,大部分时间我们是通过IDE去编写。调试,为了方便运行,我们可以使用pytest提供的pytest.main()函数运行我们的测试脚本或者例子
修改测试文件名为,test_start.py,再添加main方法执行,示例代码如下:
if __name__ == '__main__':
pytest.main()
执行结果如下:
说明:pytest会运行当前目录及子目录下所有以 test_*.py 和 *_test.py 命名的文件。文件匹配方式遵循 Standard test discovery rules
最新文章
- Allocators与Criterion的相同点及区别
- mysql中的多行查询结果合并成一个
- iOS 动态化
- 【iOS [[UIApplication sharedApplication] delegate]】运用
- getElementById() getElementsByTagName() getElementsByClassName() querySlector() querySlectorAll()区别
- mount windows-linux文件共享
- Unsafe与CAS
- VS使用WinRAR软件以命令行方式打包软件至一个exe
- Search Ads 已经在美国区上线 - iOS 移动开发周报(46)
- JavaScript text highlighting JQuery plugin
- Android Studio 配置JPush
- 黑马程序员——JAVA基础之函数,重载,内存结构
- core java 8~9(GUI &; AWT事件处理机制)
- ###STL学习--关联容器
- ContentType是否大小写区分?
- Flash神奇的视频利器StageVideo
- 关于CSS引入方式的详细见解
- java语言基础--接口
- ListView点击事件失效(item里面有button按钮控件)解决方法
- 使用Guava的ComparisonChain实现自定义的排序
热门文章
- 015_go语言中的闭包
- 秦九韶算法 &; 三分法
- C#LeetCode刷题-数组
- php的四种值输出方式
- 攻防世界-web(进阶)-Training-WWW-Robots
- Windows10 + Ubuntu 20.04 LTS 双系统安装 (UEFI + GPT)(图文,多图预警)
- 【Codeforces】CF Round #592 (Div. 2) - 题解
- 转行做程序员,培训or自学?过来人亲身经历良心分享
- 本blog的地图
- SpringMVC使用Session