Pytest标记
1、pytest 查找测试策略
默认情况下,pytest会递归查找当前目录下所有以test开始或结尾的python脚本,并执行文件内所有以test开始或者结束的函数和方法。
2、标记测试函数
第一种,显示指定函数名,通过::标记 :test_no_markpy::test_func1
第二种,使用模糊匹配,使用-k选项标识: pytest test_no_markpy -k func1
第三种,使用pytestmark在函数上进行标记: 使用pytestmark在函数上进行标记
pytest显示指定函数名,直接输入文件名、类名、方法名进行标记,执行部分测试用例。
核心: pytestmain(['-s','-v','test_markpy::TestCase'])
例子
返回结果:
test_markpy::TestCase::test_four four
PASSED
test_markpy::TestCase::test_five five
PASSED
pytest模糊匹配,参数-k指定类名和方法名进行标记,执行部分测试用例。与::类似
核心: pytestmain(['-s','-v','test_markpy','-k TestCase'])
返回结果:
test_markpy::test_two two
PASSED
test_markpy::TestCase::test_four_two four
PASSED
test_markpy::TestCase::test_five five
PASSED
pytest中的mark标记功能目的是让我们可以执行部分用例。
场景:在不同的环境中,比如linux和windows,只满足测试符合一部分用例。还不如web项目有很多模块,只需要执行一部分模块的内容。或者分平台,使用webtest和andorid、ios环境进行部分用例测试。
解决:使用mark的方式,@pytestmarkios
执行:涉及到2个参数,一个是-s和-m参数。
-s: 输出打印所有信息。
-m: 执行自定义标记的部分用例。
核心: pytestmain(['-q','test_markpy','-m not ios'])
实例:
执行没有标记ios的用例
执行结果:
4 passed, 1 deselected, 3 warnings in 002s
Python的IDE(Integrated Development Environment 集成开发环境)非常多,如:VS Code、Sublime、NotePad、Python自带编辑器IDLE、JuPyter、Eclipse PyDev等等,但是对于项目开发、管理、部署等稍微大一点的项目,猪哥觉得还是PyCharm最好用!
2019年12月2日,PyCharm迎来了20193版本,这也许会是2019年的最后一个大版本,那这个版本增加了哪些新功能呢?我们一起来看看吧!
一、Jupyter
PyCharm 在 2019年里连续发布了20191、20192、 20193三个大版本,对Jupyter进行改进,这让很多使用者感到欣慰,毕竟目前数据分析比较火,使用Jupyter Notebooks的开发者也越来越多。
注意此功能仅专业版才有!
1交互式控件
为了提供更多的交互性,Jupyter notebooks支持称为“交互式控件”的功能。这些控件支持将静态笔记本转变为交互式的面板,从而使其他用户在查看你的笔记本时,可以自定义视图。
在此次更新中,PyCharm添加了对交互式控件的支持。这意味着窗口小部件将随着输出一起呈现,并且可以像处理本机Jupyter notebooks一样用于 *** 作笔记。
2运行时代码补全
PyCharm 的优势之一是借助先进的静态代码分析算法,可以实现智能编码提示。但是,对于动态语言(例如Python)而言,静态代码分析还不足够。这就是为什么在此次更新中,我们利用Jupyter本身提供的运行时信息来对其进行扩展。在某些情况下,例如在字典索引或深层嵌套的表达式中,IDE无法使用静态分析来找出其类型,而此次更新将会使代码补全变得更为智能。
3在输出面板上放大和缩小
此次更新支持将预览的字体大小设置为与编辑器一致,或者在设置中进行自定义。编辑器提供了“使用Ctrl 鼠标滚轮更改字体大小(缩放)“选项。启用该选项后,你可以在按住Ctrl的同时,使用鼠标滚轮来放大或缩小预览。
二、Python
1文件路径联想
害怕在写文件名时打错字?特别是有较长文件名时,例如open('data/ survey_data_28112019_exportedcsv') ?现在,你可以在Python代码编辑器或控制台中获得文件路径建议。我们扩展了上下文感知的代码补全功能,因此上下文中与文件相关的字符串字面量可以为可能的文件路径提供建议。
2支持相对import
与绝对import相比,你更喜欢相对import吗?PyCharm现在支持在这些风格之间自动地转换。如果你已经使用相对导入方式导入了某个程序包,那么所有新的从该程序包的导入也将自动创建为相对导入。
3Python 38:TypedDicts
PyCharm 通过对TypedDict的支持,避免字典的错误赋值。为你的键值对结构提供更精确的展示,我们的代码编辑器能帮助你找到恰当的使用方法。
4Python 38:字面量类型注解
你是否有采用特定字符串字面量的方法,例如带文件模式“open”方法?你可以使用Python 38的Literal类型注解来检查类型,还可以检查特定的值。现在,当你调用的函数出现不支持的值时,PyCharm会出现告警。
5自动创建pytest测试
我们升级了用于自动创建测试的工具,现在也支持pytest。有了这个,PyCharm允许你通过在方法声明的菜单中,仅仅单击“Go To | Test”选项,就自动创建pytest测试。
6调试器:集合的大小信息
调试时的跟踪信息应尽可能清晰与详细。这就是我们调整变量视图的原因,现在它可以显示组织得更好且更全面的数据。有了这个,就可以期待新的排序、科学数组的更好的视觉表示、集合长度的显示以及重复细节的去除。
三、性能提升
1更快的索引
PyCharm 先进的代码内视可以帮助你更快地完成工作。为此,我们需要索引你的代码和所有导入的包。当你使用已编译扩展的软件包时(如许多数据科学软件包),在对其进行索引之前,我们需要生成描述Python接口的Python骨架(存根文件)。我们对此过程进行了改进,预计整个索引过程至少快25%。当然,如果你在多个virtualenv中使用同一程序包,我们将重用已经创建的索引。
2冻结次数减少,并改进了冻结报告
不幸的是,有时候PyCharm的UI会冻结一段时间,然后才让你重新开始处理代码。我们意识到这是非常令人不快的事情,因此我们正在努力消除这些问题。我们已经修复了许多可能导致UI冻结的问题,现在,你可以直接从IDE中上报UI冻结,这使我们有可能调查其冻结的原因,并确保它不再发生。提前感谢你帮助我们摆脱PyCharm中的UI冻结问题!
3更多的改进
今年,我们在所有JetBrains IDE的启动性能方面进行了大量工作。我们的核心平台的启动时间在20193版本中得到了进一步改善,我们将继续努力使IDE更快地启动。
现在可以在不重启IDE的情况下更改主题。在选择预先安装的主题时或下载新主题后,都可以进行此 *** 作。
在PyCharm 20193中,各种对于处理事件和忽略文件的改进,使版本控制的状态更新得更快。
我们对编辑器的呈现方式进行了一些更改,现在滚动浏览一个长文件变得更加平滑。
四、数据库支持
注意此功能仅专业版才有!
1支持MongoDB
你要在MongoDB上构建应用程序吗?那么你将很高兴地得知现在可以在PyCharm中查看MongoDB集合。通过从数据库工具窗口(视图|工具窗口|数据库)添加数据源来连接数据库。PyCharm Professional Edition附带了 JetBrains DataGrip(JetBrains制造的专业SQL IDE)的所有数据库功能。
五、IDE功能
1参数化运行配置
在创建命令行应用程序时,通常可以方便地快速更改参数。尽管你可以进入“编辑配置”来进行更改,但是现在有一种更好的方法:使用新的运行配置宏(变量),每次启动应用程序时,PyCharm都会提示你输入值。
2在选定内容中搜索
是否想知道在文件的某部分中,某些文本出现的频率?现在,在你选定的内容中,find动作将自动查找。想要到处搜索?再次按Ctrl-F(在macOS上为Cmd-F),会将搜索范围扩展到文件的其余部分。
3更多的改进
如果应用程序的一部分是用JavaScript编写的,则很可能你在某处使用了Handlebars模板。如果安装了 Handlebars插件,则现在可以在任何Python字符串中启用Handlebars代码智能。只需在字符串中按Alt-Enter,选择“插入语言或参考”,然后键入“Handlebars”。
六、版本控制
1与当前分支的改进比较
你拥有的分支越多,就越难追踪它们之间的差异。在新版本的PyCharm中,分支比较功能看起来更好,并且可以使你快速了解哪些提交使两个分支之间产生了差异。
2改进了克隆代码仓的UI
无论你使用哪种代码仓,当你要拉取新项目时,我们现在都在同一个地方开始。
3更多的改进
拉取远程分支时,通常需要创建一个跟踪该远程分支的本地分支。在PyCharm 20193中,'checkout’ *** 作只有一个,可以确保你看到远程分支的当前状态,但是没有丢失任何本地提交的风险。
PyCharm始终能够 push 你当前已拉取的分支。有时,你可能要推送另一个分支,从现在开始,不再需要首先将其检出。
七、Web开发
注意此功能仅专业版才有!
1CDN中的CSS类
你是否要使用CDN中的样式表?现在,我们可以下载该样式表的一个版本,专门用于代码补全。
2查看调试JavaScript时方法返回的值
就像在Python调试器中一样,JavaScript调试器现在可以向你显示你正在调用的方法的返回值。要查看返回值,请单击调试器上的齿轮图标,然后启用“显示返回值”。
3更多的改进
设置CSS样式,以强制使用单引号或双引号。
无论你在CSS中使用单引号还是双引号,PyCharm现在都可以帮助你使引号保持一致。在 Other 选项卡中的 Settings | Editor | Code Style | Style Sheets | CSS 中进行配置。
你是否使用未为其定义propTypes的React组件?PyCharm现在能够推断 props,并且将为你提供未定义propTypes的组件的代码补全。
python学习网,大量的免费python视频教程,欢迎在线学习!
本文转自:>
1、-K EXPRESSION
执行某个关键字的用例
用例要匹配给出的表达式;使用python的语法,匹配的范围是文件名、类名、函数名为变量,用and来区分
pytest -k "test and TestClass and not test_a" testpy # test-文件名,TestClass-类名,test_a-函数名,not就是不运行函数名test_a函数
2、--maxfail=num
当错误个数到达给定数时,退出测试,这里就不列举实例了,结果与-x类似
-x,,如果遇到错误就停止
3、-m MARKEXPR
只能运行有相应标识的测试用例,使用这个参数,测试用例要使用@pytestmarkmarker修饰
pytest –m slow testpy # slow是测试用例函数使用了@pytestmarkslow来修饰,执行这个
注意,-m后面不能带''号(单引号),只能带“”(双引号),不然识别不到
如果要运行多个标识的话,用表达式,如下
pytest -m "slow or faster" 运行有slow标识或 faster标识用例
pytest -m "slow and faster" 运行有slow和faster标识的用例
pytest -m "slow and not faster" 运行有slow和没有faster标识的用例
4、-v, --verbose
详细结果
5、-q, --quiet
极简结果显示,简化控制台的输出,可以看出输出信息和之前不添加-q不信息不一样, 下图中有两个点代替了pass结果
6、-s
输入我们用例中的调式信息,比如print的打印信息等,我们在用例中加上一句 print(drivertitle),我们再运行一下我们的用例看看,调试信息输出
7、 -V
可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等
8、--junit-xml=path
输出xml文件格式,在与jenkins做集成时使用
9、--result-log=path
将最后的结果保存到本地文件中
Pytest是一个比PyUnit更加复杂的测试框架,其将测试常用的内容都包含进来了,如生成测试报告、生成覆盖率报告等。而且Pytest提供插件功能,很多开发人员可以通过开发Pytest插件来扩展Pytest的功能。
Pytest也不是Python自带的模块,需要自行安装。推荐使用PIP进行安装,安装命令如下:
安装完成后就可以在系统的安装目录看到pytest和pytest两个文件。这两个文件只是文件名不同,内容是一样的,它们都是Python脚本文件。
pip install pytest
1、测试用例
有两种定义测试用例的方法,第一种方法是定义一个以test_开头的函数,这样的函数默认都会被认为是测试用例。
第二种方法是定义一个以Test开头的类,该类中所有以test开头的函数都被认为是一个测试用例。
2、选择执行的测试用例
可以像以前一样,通过指定模块名来运行测试用例。假定当前目录下有两个文件,test_apy和test_bpy,分别包含一些测试用例。test_apy的内容如下:
test_bpy的内容如下:
如果希望执行test_apy中的两个测试用例,可以使用下面的命令:
如果希望执行test_apy和test_bpy中的所有测试用例,可以使用下面的命令:
如果希望仅执行test_apy中的test_case_a_1测试用例,可以使用下面的命令:
如果希望执行test_apy中的test_case_a_1和test_bpy中的test_case_b_2这两个测试用例,可以使用下面的命令:
如果对于所选中的测试用例不是特别有把握,可以使用参数--setup-plan,这样测试用例不会真正执行,只是列出计划执行的测试用例列表。
需要注意的是,测试用例文件的名字推荐以test_开头,或者以_test结尾;不同目录下不能有相同的文件。
以上就是关于pytest之标记mark全部的内容,包括:pytest之标记mark、Pycharm 2019.3增加了哪些新功能、pytest命令允许参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)