pytest文档3-pycharm运行pytest

前言

上一篇pytest文档2-用例运行规则已经介绍了如何在cmd执行pytest用例,平常我们写代码在pycharm比较多
写完用例之后,需要调试看看,是不是能正常运行,如果每次跑去cmd执行,太麻烦,所以很有必要学习如何在pycharm里面运行pytest用例

pycharm运行三种方式

1.以xx.py脚本方式直接执行,当写的代码里面没用到unittest和pytest框架时,并且脚本名称不是以test_开头命名的,此时pycharm会以xx.py脚本方式运行

1070438-20180725162425409-1787561876.png

2.当脚本命名为test_xx.py时,用到unittest框架,此时运行代码,pycharm会自动识别到以unittest方式运行

1070438-20180725162433608-1164239459.png

3.以pytest方式运行,需要改该工程设置默认的运行器:file->Setting->Tools->Python Integrated Tools->项目名称->Default test runner->选择py.test

1070438-20180725162440753-1158869580.png

备注:pytest是可以兼容unittest框架代码的

pycharm写pytest代码

1.在pycharm里面写pytest用例,先导入pytest

# D:/YOYO/test_class.py

** 作者:上海-悠悠 QQ交流群:588402570**

import pytest

class TestClass:
        def test_one(self):
            x = "this"
            assert 'h' in x

        def test_two(self):
            x = "hello"
            assert hasattr(x, 'check')

        def test_three(self):
            a = "hello"
            b = "hello world"
            assert a in b

if __name__ == "__main__":
    pytest.main('-q test_class.py')

运行结果

.F.                                                                      [100%]
================================== FAILURES ===================================
_____________________________ TestClass.test_two ______________________________

self = <YOYO.test_class.TestClass object at 0x00000000039F9080>

    def test_two(self):
        x = "hello"
>       assert hasattr(x, 'check')
E       AssertionError: assert False
E        +  where False = hasattr('hello', 'check')

test_class.py:11: AssertionError
============================== warnings summary ===============================
<undetermined location>
  passing a string to pytest.main() is deprecated, pass a list of arguments instead.

-- Docs: http://doc.pytest.org/en/latest/warnings.html
1 failed, 2 passed, 1 warnings in 0.06 seconds

2.运行结果“.F. ” 点是代表测试通过,F是Fail的意思,1 warnings是用于pytest.main('-q test_class.py')里面参数需要传list,多个参数放list就不会有警告了

pytest.main(['-q', 'test_class.py'])

pycharm设置pytest

1.新建一个工程后,左上角file->Setting->Tools->Python Integrated Tools->项目名称->Default test runner->选择py.test

1070438-20180725190136832-453549054.png

2.改完之后,再重新建个脚本(注意是先改项目运行方式,再写代码才能出来),接下来右键运行就能出来pytest运行了

1070438-20180725190420689-896093905.png

3.pytest是可以兼容unittest脚本的,之前写的unittest用例也能用pytest框架去运行

---------------------------------pytest结合selenium自动化完整版-------------------------

全书购买地址 https://yuedu.baidu.com/ebook/902224ab27fff705cc1755270722192e4536582b

作者:上海-悠悠 QQ交流群:874033608

也可以关注下我的个人公众号:yoyoketang

1070438-20181009214319480-1673365725.jpg

### 如何在PyCharm运行pytest 要在PyCharm运行`pytest`,需要完成以下几个方面的配置: #### 配置环境 确保已正确安装`pytest`库。可以在命令行中执行以下命令之一来安装或更新`pytest`: ```bash pip install -U pytest ``` 如果网络较慢,可以使用国内镜像源加速安装过程: ```bash pip install pytest -i https://pypi.mirrors.ustc.edu.cn/simple ``` #### 设置默认测试运行器 进入PyCharm的设置界面,按照路径导航至 `File -> Settings -> Tools -> Python Integrated Tools`,找到`Default test runner`选项并将其更改为`pytest`[^5]。 #### 创建符合规范的测试文件 为了使PyCharm能够识别并以`pytest`模式运行测试文件,需遵循特定的命名约定和结构规则: - 测试文件名应以前缀`test_`开头或以后缀`_test`结尾。 - 如果定义了测试类,则该类名必须以`Test`开头,并且不应继承任何其他类(除非必要)。 - 所有的测试用例方法都应当以`test_`作为前缀[^1]。 #### 编写简单的测试案例 下面是一个基本的例子展示如何编写一个简单的单元测试: ```python import pytest class TestExample: def setup_method(self, method): print("\nSetup Method") def teardown_method(self, method): print("\nTeardown Method") def test_example_success(self): assert True if __name__ == "__main__": pytest.main() ``` #### 调试与运行 一旦完成了上述准备工作,在PyCharm内部右键点击某个具体的测试函数或者整个测试文件都可以直接选择“Run”或“Debug”,此时IDE将以之前设定好的`pytest`方式进行处理[^3]。 对于运行的结果反馈来说,通常情况下通过一系列字符表现出来其中`.`代表每一个成功的测试项;如果有失败的情况则标记为`F`而不是`Fail`[^2]。 --- ### 提供辅助功能扩展 另外值得注意的是,除了单独针对某几个固定场景下的初始化/清理操作之外,还可以借助于专门设计用来共享这些逻辑片段——即所谓的fixture机制进一步优化代码组织形式。例如下面这个例子展示了怎样利用外部定义的数据提供服务给多个不同的测试点共同消费[^4]: ```python # conftest.py import pytest @pytest.fixture() def sample_data(): return {"value": 4} # test_sample.py def test_with_fixture(sample_data): assert sample_data["value"] == 4 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值