pytest

How to test airflow dag in unittest?

穿精又带淫゛_ 提交于 2021-01-21 18:55:10
问题 I am trying to test a dag with more than one task in the test environment. I was able to test single task associated with the dag but I want to create several tasks in dag and kick of the first task. For testing one task in a dag I am using task1.run() which is getting executed. But, the same is not working when I have many tasks one after another in downstream of a dag. from airflow import DAG from airflow.operators.bash_operator import BashOperator from datetime import datetime, timedelta

How to test airflow dag in unittest?

流过昼夜 提交于 2021-01-21 18:53:47
问题 I am trying to test a dag with more than one task in the test environment. I was able to test single task associated with the dag but I want to create several tasks in dag and kick of the first task. For testing one task in a dag I am using task1.run() which is getting executed. But, the same is not working when I have many tasks one after another in downstream of a dag. from airflow import DAG from airflow.operators.bash_operator import BashOperator from datetime import datetime, timedelta

python测试框架&&数据生成&&工具最全资源汇总

你。 提交于 2021-01-16 06:14:16
xUnit frameworks 单元测试框架 frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Python 2.7以及后续版本 pytest - 成熟且功能强大的单元测试框架 plugincompat - pytest的执行及兼容性插件 nosetests - 让python测试更容易一点 slash - python实现的单元测试框架 extensions 扩展 proboscis - 仿TestNG扩展了unittest模块以及Nose的功能 grail - 可以让你一步一步编写测试用例的库 testify - 单元测试框架,提供了加强型fixture,用例切割并行运行,testrunner高亮及详尽的log和report功能 trial - unittest模块的扩展,提供了命令行的testrunner工具以及代码覆盖率的整合,跟nose差不多 subunit - 提供了unittest在另一个进程执行用例并汇总测试数据的能力 testresources - 提供了多用例间管理测试数据的机制,兼容unittest testtools - 为Twisted和Bazaar提供的unittest扩展 Sancho - 运行用例,并为失败的用例提供报告,但仅限于此 zope.testing

Pytest权威教程17-安装和使用插件

自古美人都是妖i 提交于 2021-01-14 03:00:46
[TOC] 返回: Pytest权威教程 安装和使用插件 本节讨论如何安装和使用第三方插件。有关编写自己的插件的信息,请参阅编写插件。 安装第三方插件可以通过以下方式轻松完成 pip : pip install pytest-NAME pip uninstall pytest-NAME 如果安装了插件,则 pytest 自动查找并集成它,无需激活它。 这是一些常用插件列表: pytest-django:为django应用程序编写测试。 pytest-twisted:为twisted应用程序编写测试,启动反应堆并处理测试函数的延迟。 pytest-cov:覆盖率报告,与分布式测试兼容 pytest-xdist:将测试分发到CPU和远程主机,以盒装模式运行,允许分段故障,在looponfailing模式下运行,自动重新运行文件更改的失败测试。 pytest-instafail:在测试运行期间报告失败。 pytest-bdd使用行为驱动的测试编写测试。 pytest-timeout:根据函数标记或全局定义进行超时测试。 pytest-pep8: --pep8 启用PEP8合规性检查的选项。 pytest-flakes:用pyflakes检查源代码。 oejskit:在实时浏览器中运行javascript unittests的插件。

Pytest权威教程20-日志

China☆狼群 提交于 2021-01-14 02:49:15
[TOC] 返回: Pytest权威教程 记录日志 Pytest默认捕获WARNING以上日志消息,在每个失败的测试结果概要中,捕获的log信息和stdout、stderr信息使用相同的方式,分块显示。 不带选项运行: pytest 失败的用例显示格式如下: ----------------------- Captured stdlog call ---------------------- test_reporting.py 26 WARNING text going to logger ----------------------- Captured stdout call ---------------------- text going to stdout ----------------------- Captured stderr call ---------------------- text going to stderr ==================== 2 failed in 0.02 seconds ===================== 默认情况下,捕获到的每条日志消息都会显示模块,行号,日志级别和消息内容。 如果需要更改日志的显示格式,也可以通过传递特定的日志格式选项和日期格式选项,来指定日志显示的格式: pytest --log-format

pytest文档27-pytest分布式执行(pytest-xdist)

放肆的年华 提交于 2021-01-13 23:04:35
前言 平常我们手工测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟。如果一个测试人员执行需要1000分钟才能执行完,当项目非常紧急的时候, 我们会用测试人力成本换取时间成本,这个时候多找个小伙伴把任务分成2部分,于是时间缩减一半。如果是十个人一起执行,1000个用例理论上只需100分钟就能完成,时间缩短到了1/10。大大节省的测试时间,为项目节省了时间成本。 pytest 3.6.3 pytest-allure-adaptor 1.7.10 pytest-forked 0.2 pytest-html 1.19.0 pytest-metadata 1.7.0 pytest-repeat 0.7.0 pytest-xdist 1.23.2 同样道理,当我们测试用例非常多的时候,一条条执行,很显然会比较慢,那么如何让测试用例并行执行呢,这就是我们接下来要讲的pytest分布式执行插件pytest-xdist pytest-xdist cmd里面使用pip安装,目前版本号Version: 1.23.2 pip install pytest-xdist >pip show pytest-xdist Name: pytest-xdist Version: 1.23.2 Summary: pytest xdist plugin for distributed testing and

Allure报告

时光总嘲笑我的痴心妄想 提交于 2021-01-09 12:32:11
1.安装解压 Allure 是一款轻量级的开源自动化测试报告生成框架。它支持绝大部分测试框架,比如 TestNG、Junit 、pytest、unittest 等。本文主要介绍 pytest 框架结合 Allure 生成 格式统一、美观的测试报告。 Allure下载: https://github.com/allure-framework/allure2/releases 2.配置环境变量 1.path配置:E:\allure-2.7.0\bin 2.pycharm中项目安装allure-pytest 3.报告说明 4.代码规则 编写一段使用 pytest 框架的测试代码 # -*- coding: utf-8 -*- """ @PRO :python-Api @Time :2020/12/24 16:05 @Auth :Simon @File :test_demo.py """ import os import allure import pytest @allure.step("1.输入车牌号") def step_2_1_1 () : print( "测试用例1" ) assert 1 @allure.step("2.点击搜索按钮") def step_2_1_2 () : print( "测试用例1" ) assert 1 @allure.step("3.点击搜索到的车辆"

环境搭建之allure的安装配置,及简单使用

穿精又带淫゛_ 提交于 2021-01-09 12:15:19
##环境准备 首先是要安装好jdk的电脑上,运行java、javac这些命令都没有问题,要不安装allure时会报错 ##下载allure 如果直接用Jenkins上的插件,并不需要下载安装 allure官网http://allure.qatools.ru/ allure官方学习文档 在官网上下载,对应的版本到本地,解压出来 ###添加path环境变量 打开\allure-2.8.0\bin文件夹,会看到allure.bat文件,讲此路径设置为系统环境变量path下,这样cmd任意目录都能执行了 比如我这里的路径是 D:\Programs\allure-2.8.0\bin, 记得确定,记得确定,并重新启动一个cmd窗口 ###校验是否安装成功 在cmd中运行 allure命令, 右侧为成功安装,左侧为确定环境变量之前打开的cmd ##与pytest的集成 需要安装一个叫做 pytest-allure的插件库 pip install allure-pytest 详见 官方文档 ,我这里做了一个截图 ##其他用法 其他用法先参考 悠悠的博客吧 ,算了一些命令,先记录一下吧 ###生成xml报告 pytest -s -q --alluredir report 生成xml报告用这个命令 如果不指定路径,默认在当前目录下新建一个report目录,当然也可以指定路径 pytest -s -q

pytest AttributeError when using fixture with yield

随声附和 提交于 2021-01-08 15:30:24
问题 I am using pytest fixture with yield. But receive AttributeError when trying to get value that yield returns conftest.py @pytest.fixture() def driver_setup(): driver = webdriver.Firefox() yield driver driver.quit() basetest.py @pytest.mark.usefixtures("driver_setup") class BaseTest: pass test_example.py class TestExample(BaseTest): def test_example(self): self.driver.get(url) pass Output: AttributeError: 'TestExample' object has no attribute 'driver' 回答1: You need to update driver_setup

pytest AttributeError when using fixture with yield

六眼飞鱼酱① 提交于 2021-01-08 15:29:09
问题 I am using pytest fixture with yield. But receive AttributeError when trying to get value that yield returns conftest.py @pytest.fixture() def driver_setup(): driver = webdriver.Firefox() yield driver driver.quit() basetest.py @pytest.mark.usefixtures("driver_setup") class BaseTest: pass test_example.py class TestExample(BaseTest): def test_example(self): self.driver.get(url) pass Output: AttributeError: 'TestExample' object has no attribute 'driver' 回答1: You need to update driver_setup