返回顶部
首页 > 资讯 > 后端开发 > Python >Python中的pytest命令行方式是怎样运行的
  • 640
分享到

Python中的pytest命令行方式是怎样运行的

2023-06-22 05:06:17 640人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

python中的pytest命令行方式是怎样运行的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言用命令行方式调用用例是我们最常用的方式,这方面确实比java的TestNG框

python中的pytest命令行方式是怎样运行的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

前言

用命令行方式调用用例是我们最常用的方式,这方面确实比java的TestNG框架要好用许多,至少不用写xml文件,为了提供定制化运行用例的方式,pytest提供了许多运行命令以供定制化运行某一类测试用例或者某个测试用例等;

PyCharm里命令行运行用例

在pycharm里写好了测试用例后如何运行呢?pycharm里好像并没有像eclipse里提供TestNG用的插件一样可以一键执行的方式,那么我们可以使用命令行的方式来进行,如下图所示为一个用例文件:

Python中的pytest命令行方式是怎样运行的

代码如下:

#-*- coding: utf-8 -*-import pytestclass Test_simple():    @pytest.mark.test    def test_case1(self):        print("testCase1")        tof = True        assert tof    @pytest.mark.nORMal    @pytest.mark.test    def test_case2(self):        print("testCase2")        tof = False        assert tof    def test_case3(self):        print("testCase3")        assert True    @pytest.mark.test    def setup_class(self):        print("用于test组")    @pytest.mark.normal    def setup_class(self):        print("用于normal组")

如上所示添加了一个名为testSimple的工程,内添加了一些测试用例即Test_simple;

想要运行用例时可以打开下方的Terminal窗口:

Python中的pytest命令行方式是怎样运行的

会自动切换到当前工程目录下,而后即可使用pytest的命令了,如下对运行结果简单做下说明:

Python中的pytest命令行方式是怎样运行的

终端中使用pytest

在终端中使用pytest也是和在pycharm中类似,如下以windows系统为例:

先切换到用例所在工程或者目录而后运行pytest即可,如下:

Python中的pytest命令行方式是怎样运行的

linux系统中也是同样的使用方法,只是如果没有为pytest添加软连接,则需要在pytest前面加上Python命令;

用例全部运行

全部运行时不需要添加任何后缀,只需要添加命令pytest即可,此时打印的信息比较简单:

E:\pyspace\testSimple>pytest========================================================================================================================= test session starts ==========================================================================================================================platform win32 -- Python 3.7.1, pytest-4.4.1, py-1.8.0, pluggy-0.11.0rootdir: E:\pyspace\testSimpleplugins: metadata-1.8.0, html-1.20.0, allure-pytest-2.6.3collected 3 items                                                                                                                                                                                                                                                       testcase\Test_simple.py .F.                                                                                                                                                                                                                                       [100%]=============================================================================================================================== FaiLURES ===============================================================================================================================________________________________________________________________________________________________________________________ Test_simple.test_case2 ________________________________________________________________________________________________________________________self = <testcase.Test_simple.Test_simple object at 0x00000000038508D0>    @pytest.mark.normal    @pytest.mark.test    def test_case2(self):        print("testCase2")        tof = False>       assert tofE       assert Falsetestcase\Test_simple.py:18: AssertionError------------------------------------------------------------------------------------------------------------------------- Captured stdout call -------------------------------------------------------------------------------------------------------------------------testCase2================================================================================================================== 1 failed, 2 passed in 0.08 seconds ==================================================================================================================E:\pyspace\testSimple>

打印详情-v

如上图所示,只显示了用例时成功还是失败,至于里边的log则没有打印,那么如果我们想要看运行详细信息怎么办呢?可以加上-v标签,如下:

E:\pyspace\testSimple>pytest -v========================================================================================================================= test session starts ==========================================================================================================================platform win32 -- Python 3.7.1, pytest-4.4.1, py-1.8.0, pluggy-0.11.0 -- e:\software\python\python3.7\python.execachedir: .pytest_cachemetadata: {'Python': '3.7.1', 'Platform': 'Windows-7-6.1.7601-SP1', 'Packages': {'pytest': '4.4.1', 'py': '1.8.0', 'pluggy': '0.11.0'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-pytest': '2.6.3'}, 'JAVA_HOME': 'D:\\project\\jdk1.8'}rootdir: E:\pyspace\testSimpleplugins: metadata-1.8.0, html-1.20.0, allure-pytest-2.6.3collected 3 items                                                                                                                                                                                                                                                       testcase/Test_simple.py::Test_simple::test_case1 PASSED                                                                                                                                                                                                           [ 33%]testcase/Test_simple.py::Test_simple::test_case2 FAILED                                                                                                                                                                                                           [ 66%]testcase/Test_simple.py::Test_simple::test_case3 PASSED                                                                                                                                                                                                           [100%]=============================================================================================================================== FAILURES ===============================================================================================================================________________________________________________________________________________________________________________________ Test_simple.test_case2 ________________________________________________________________________________________________________________________self = <testcase.Test_simple.Test_simple object at 0x000000000382EDA0>    @pytest.mark.normal    @pytest.mark.test    def test_case2(self):        print("testCase2")        tof = False>       assert tofE       assert Falsetestcase\Test_simple.py:18: AssertionError------------------------------------------------------------------------------------------------------------------------- Captured stdout call -------------------------------------------------------------------------------------------------------------------------testCase2================================================================================================================== 1 failed, 2 passed in 0.08 seconds ==================================================================================================================E:\pyspace\testSimple>

如上图会把详细信息都打印出来

指定组别

如果用例中包含多个分组,想要只运行其中一个组,则使用-m "组名"的方式,依然使用如上代码,运行命令和结果如下:

E:\pyspace\testSimple>pytest -s -m "normal"========================================================================================================================= test session starts ==========================================================================================================================platform win32 -- Python 3.7.1, pytest-4.4.1, py-1.8.0, pluggy-0.11.0rootdir: E:\pyspace\testSimpleplugins: metadata-1.8.0, html-1.20.0, allure-pytest-2.6.3collected 3 items / 2 deselected / 1 selected                                                                                                                                                                                                                           testcase\Test_simple.py 用于normal组testCase2F=============================================================================================================================== FAILURES ===============================================================================================================================________________________________________________________________________________________________________________________ Test_simple.test_case2 ________________________________________________________________________________________________________________________self = <testcase.Test_simple.Test_simple object at 0x00000000036D27F0>    @pytest.mark.normal    @pytest.mark.test    def test_case2(self):        print("testCase2")        tof = False>       assert tofE       assert Falsetestcase\Test_simple.py:18: AssertionError================================================================================================================ 1 failed, 2 deselected in 0.07 seconds ================================================================================================================E:\pyspace\testSimple>

使用表达式指定某些用例-k

-k选项允许我们设置表达式来运行某些用例,如下传参就只运行了test_case1和test_case2

E:\pyspace\testSimple>pytest -v -k "case1 or case2"========================================================================================================================= test session starts ==========================================================================================================================platform win32 -- Python 3.7.1, pytest-4.4.1, py-1.8.0, pluggy-0.11.0 -- e:\software\python\python3.7\python.execachedir: .pytest_cachemetadata: {'Python': '3.7.1', 'Platform': 'Windows-7-6.1.7601-SP1', 'Packages': {'pytest': '4.4.1', 'py': '1.8.0', 'pluggy': '0.11.0'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-pytest': '2.6.3'}, 'JAVA_HOME': 'D:\\project\\jdk1.8'}rootdir: E:\pyspace\testSimpleplugins: metadata-1.8.0, html-1.20.0, allure-pytest-2.6.3collected 3 items / 1 deselected / 2 selected                                                                                                                                                                                                                           testcase/Test_simple.py::Test_simple::test_case1 PASSED                                                                                                                                                                                                           [ 50%]testcase/Test_simple.py::Test_simple::test_case2 FAILED                                                                                                                                                                                                           [100%]

表达式的写法有许多,可以用全称如test_case1这样也可以去掉test_,除了or外也可以使用not来指定那些用例不跑;

遇到失败即停止运行-x

pytest的原本运行规则是每条用例均执行,不管是否有失败,如果我们想在用例运行时遇到失败即停止,则可以使用-x,如下所示,第二条用例失败后则不再运行第三条用例:

E:\pyspace\testSimple>pytest -v -x========================================================================================================================= test session starts ==========================================================================================================================platform win32 -- Python 3.7.1, pytest-4.4.1, py-1.8.0, pluggy-0.11.0 -- e:\software\python\python3.7\python.execachedir: .pytest_cachemetadata: {'Python': '3.7.1', 'Platform': 'Windows-7-6.1.7601-SP1', 'Packages': {'pytest': '4.4.1', 'py': '1.8.0', 'pluggy': '0.11.0'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-pytest': '2.6.3'}, 'JAVA_HOME': 'D:\\project\\jdk1.8'}rootdir: E:\pyspace\testSimpleplugins: metadata-1.8.0, html-1.20.0, allure-pytest-2.6.3collected 3 items                                                                                                                                                                                                                                                       testcase/Test_simple.py::Test_simple::test_case1 PASSED                                                                                                                                                                                                           [ 33%]testcase/Test_simple.py::Test_simple::test_case2 FAILED                                                                                                                                                                                                           [ 66%]=============================================================================================================================== FAILURES ===============================================================================================================================________________________________________________________________________________________________________________________ Test_simple.test_case2 ________________________________________________________________________________________________________________________self = <testcase.Test_simple.Test_simple object at 0x00000000037A9B00>    @pytest.mark.normal    @pytest.mark.test    def test_case2(self):        print("testCase2")        tof = False>       assert tofE       assert Falsetestcase\Test_simple.py:18: AssertionError------------------------------------------------------------------------------------------------------------------------- Captured stdout call -------------------------------------------------------------------------------------------------------------------------testCase2================================================================================================================== 1 failed, 1 passed in 0.08 seconds ==================================================================================================================E:\pyspace\testSimple>

指定运行某个测试py文件

指定运行某个py文件,只需要接上文件相对路径即可:

E:\pyspace\testSimple>pytest -v testcase/Test_example.py========================================================================================================================= test session starts ==========================================================================================================================platform win32 -- Python 3.7.1, pytest-4.4.1, py-1.8.0, pluggy-0.11.0 -- e:\software\python\python3.7\python.execachedir: .pytest_cachemetadata: {'Python': '3.7.1', 'Platform': 'Windows-7-6.1.7601-SP1', 'Packages': {'pytest': '4.4.1', 'py': '1.8.0', 'pluggy': '0.11.0'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-pytest': '2.6.3'}, 'JAVA_HOME': 'D:\\project\\jdk1.8'}rootdir: E:\pyspace\testSimpleplugins: metadata-1.8.0, html-1.20.0, allure-pytest-2.6.3collected 1 item                                                                                                                                                                                                                                                        testcase/Test_example.py::Test_example::test_aaa PASSED                                                                                                                                                                                                           [100%]======================================================================================================================= 1 passed in 0.02 seconds =======================================================================================================================E:\pyspace\testSimple>

指定运行某个class

写法为:py文件路径::class名称,范例如下:

E:\pyspace\testSimple>pytest -v testcase/Test_example.py::Test_example2========================================================================================================================= test session starts ==========================================================================================================================platform win32 -- Python 3.7.1, pytest-4.4.1, py-1.8.0, pluggy-0.11.0 -- e:\software\python\python3.7\python.execachedir: .pytest_cachemetadata: {'Python': '3.7.1', 'Platform': 'Windows-7-6.1.7601-SP1', 'Packages': {'pytest': '4.4.1', 'py': '1.8.0', 'pluggy': '0.11.0'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-pytest': '2.6.3'}, 'JAVA_HOME': 'D:\\project\\jdk1.8'}rootdir: E:\pyspace\testSimpleplugins: metadata-1.8.0, html-1.20.0, allure-pytest-2.6.3collected 1 item                                                                                                                                                                                                                                                        testcase/Test_example.py::Test_example2::test_bbb PASSED                                                                                                                                                                                                          [100%]======================================================================================================================= 1 passed in 0.08 seconds =======================================================================================================================E:\pyspace\testSimple>

指定运行某个方法:

写法为:py文件路径::class名称::method名称,范例如下:

E:\pyspace\testSimple>pytest -v testcase/Test_example.py::Test_example2========================================================================================================================= test session starts ==========================================================================================================================platform win32 -- Python 3.7.1, pytest-4.4.1, py-1.8.0, pluggy-0.11.0 -- e:\software\python\python3.7\python.execachedir: .pytest_cachemetadata: {'Python': '3.7.1', 'Platform': 'Windows-7-6.1.7601-SP1', 'Packages': {'pytest': '4.4.1', 'py': '1.8.0', 'pluggy': '0.11.0'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'allure-pytest': '2.6.3'}, 'JAVA_HOME': 'D:\\project\\jdk1.8'}rootdir: E:\pyspace\testSimpleplugins: metadata-1.8.0, html-1.20.0, allure-pytest-2.6.3collected 1 item                                                                                                                                                                                                                                                        testcase/Test_example.py::Test_example2::test_bbb PASSED                                                                                                                                                                                                          [100%]======================================================================================================================= 1 passed in 0.08 seconds =======================================================================================================================E:\pyspace\testSimple>

如上几种也可以组合使用;

其他

pytest还包含许多其他用法,具体用法可以使用pytest --help来查看,如下:

Python中的pytest命令行方式是怎样运行的

看完上述内容,你们掌握Python中的pytest命令行方式是怎样运行的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网Python频道,感谢各位的阅读!

--结束END--

本文标题: Python中的pytest命令行方式是怎样运行的

本文链接: https://lsjlt.com/news/302791.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中的pytest命令行方式是怎样运行的
    Python中的pytest命令行方式是怎样运行的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言用命令行方式调用用例是我们最常用的方式,这方面确实比java的TestNG框...
    99+
    2023-06-22
  • Python教程之pytest命令行方式运行用例
    目录前言pycharm里命令行运行用例终端中使用pytest用例全部运行打印详情-v指定组别使用表达式指定某些用例-k遇到失败即停止运行-x指定运行某个测试py文件指定运行某个cla...
    99+
    2024-04-02
  • CloudFoundry命令行和Kubernetes命令行中Restful API消费方式是怎么样的
    这篇文章主要为大家展示了“CloudFoundry命令行和Kubernetes命令行中Restful API消费方式是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CloudFoundr...
    99+
    2023-06-04
  • navicat运行命令行的方法
    小编给大家分享一下navicat运行命令行的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!打开Navicat。点击【工具】菜单,选择【命令列界面】。此时进入了mysql命令行状态。展示所有...
    99+
    2024-04-02
  • Python命令行运行文件的实例方法
    1、说明 写了python文件,想通过命令执行它,进入目录,并在命令执行中输入python文件名称。 2、实例 例如,桌子上有文件hello.py,内容是印刷一句话 print(...
    99+
    2024-04-02
  • PHP运行模式是怎样的
    本篇内容主要讲解“PHP运行模式是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP运行模式是怎样的”吧!PHP 运行模式SAPI这里所说的 PHP 运行模式, 其实指的是 SAPI (...
    99+
    2023-06-22
  • springboot运行模式是怎样的
    本篇内容介绍了“springboot运行模式是怎样的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、springboot项目常见的运行方式...
    99+
    2023-06-05
  • WinXP怎么运行Chkdsk命令 WinXP系统运行Chkdsk命令的方法
    在WinXP系统中,Chkdsk的全称就是Checkdisk,这个也就是磁盘检查的意思。如果WinXP系统的硬盘或U盘出错时,那么就可以使用Chkdsk命令来修复一些硬盘和U盘存储不了数据的问题。那么在WinXP系统中要...
    99+
    2023-05-21
    winxp运行chkdsk命令 winxp chkdsk
  • pyw格式、命令行运行python程序与
    pyw格式简介:   与py类似,我认为他们俩卫衣的不同就是前者运行时候不显示终端窗口,后者显示 命令行运行python程序:   在我学习python的过程中我通常使用IDLE来运行程序,这一步骤太过繁琐(需要打开文件,再按下F5),使...
    99+
    2023-01-30
    命令行 格式 程序
  • Python命令行怎么运行文件
    小编给大家分享一下Python命令行怎么运行文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面向对...
    99+
    2023-06-14
  • Linux中运行python文件的命令是什么
    今天小编给大家分享一下Linux中运行python文件的命令是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、 通过r...
    99+
    2023-06-28
  • cmd运行命令的10个另类用法是怎样的
    cmd运行命令的10个另类用法是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Windows XP开始菜单中的“运行”大家一定不陌生吧,打开命令行窗口只需输入“cmd...
    99+
    2023-06-14
  • python运行cmd命令行的3种方法总结
    目录1.执行cmd命令,不显示执行过程中弹出的黑框2.执行cmd命令,并得到执行后的返回值,python调试界面输出返回值3.执行cmd命令,并得到执行后的返回值,python调试界...
    99+
    2024-04-02
  • java命令行编译运行的方法是什么
    要使用Java命令行进行编译和运行,需要先安装Java Development Kit(JDK)。 编译Java程序的步骤如下: ...
    99+
    2023-10-26
    java
  • WinXP系统怎样运行Chkdsk命令
    本篇内容主要讲解“WinXP系统怎样运行Chkdsk命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WinXP系统怎样运行Chkdsk命令”吧!  WinXP系统运行Chkdsk命令的方法步骤...
    99+
    2023-06-14
  • python怎么运行cmd命令
    本篇内容介绍了“python怎么运行cmd命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、使用os.system()方法os.syst...
    99+
    2023-06-27
  • Pytest allure 命令行参数的使用
    先看看 allure 命令的帮助文档 cmd 敲 allure -h allure 命令的语法格式 allure [options] [command] [command ...
    99+
    2024-04-02
  • PHP中CLI命令行运行模式的示例分析
    这篇文章将为大家详细讲解有关PHP中CLI命令行运行模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP的CLI命令行运行模式浅析在做开发的时候,我们不仅仅只是做各种网站或者接口,也经常需要...
    99+
    2023-06-15
  • Win7运行命令的打开方法 Win7运行命令大全(45个)
    Win7运行命令在哪?ALT旁边的WIN徽标键,再按R,即win+R,就是运行命令快捷键Windows7开始中一开始是没有“运行”的,如下图红色椭圆处所示空白:下面就教你如何开启“运行...
    99+
    2023-05-26
    win7运行命令大全 win7命令大全 win7命令提示符大全 win7 cmd命 命令 运行 方法 Win7 大全
  • MongoDB命令行与进程是怎样的
    本篇文章给大家分享的是有关MongoDB命令行与进程是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、命令行MongoDB shell...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作