pytest测试框架的服务插件

pytest-services的Python项目详细描述


Pytest测试框架的服务插件

https://img.shields.io/pypi/v/pytest-services.svghttps://img.shields.io/pypi/pyversions/pytest-services.svghttps://img.shields.io/coveralls/pytest-dev/pytest-services/master.svghttps://travis-ci.org/pytest-dev/pytest-services.svg?branch=masterdocumentation status

安装pytest服务

pip install pytest-services

功能

该插件提供了一组fixture和实用程序函数,可以使用 pytest

固定装置

    < DL>
    运行服务
    确定是否应运行服务。如果不是在分布式环境中,则默认为false (没有 pytest xdist )。可以通过在测试配置中重写此fixture手动设置为true,或者 只需使用 –运行服务 命令行参数(见下文)。

基础设施
    < DL>
    从机id
    如果使用pytest xdist运行测试,则从机的id。如果不使用 pytest xdist (命令行选项设置为 load )。
    < DL>
    会话ID
    测试会话ID。全局唯一,当然,对于可能的多个测试也保证是不同的 在同一个测试节点上运行的会话,通过 pytest xdist
    < DL> 观察者
    用于实例化测试服务观察程序(popen对象)的函数。包括 服务处理,并在从函数返回观察程序之前测试服务。 memcached服务的使用示例:
@pytest.fixture(scope='session')defmemcached(request,run_services,memcached_socket,watcher_getter):"""The memcached instance which is ready to be used by the tests."""ifrun_services:returnwatcher_getter(name='memcached',arguments=['-s',memcached_socket],checker=lambda:os.path.exists(memcached_socket),# Needed for the correct execution order of finalizersrequest=request,)
    < DL>
    服务日志
    管理测试服务时用于调试日志记录的记录器。
    < DL>
    根目录
    测试服务工件的父目录(基于磁盘)。默认设置为 /tmp
    < DL> < d>基本目录
    测试服务工件的基本目录(基于磁盘),根目录的唯一子目录。 在测试会话结束时自动递归删除。
    < DL>
    温度目录
    临时目录(基于磁盘),是 基本目录的子文件夹。 用于严格的临时工件(例如-从用户输入上载文件的文件夹)。
    < DL>
    内存根目录
    测试服务工件的父目录(基于内存)。拥有内存基目录的主要思想是 将性能关键型文件存储在那里。例如-mysql服务将使用它来存储数据库文件,它将加快 mysql服务器很多,特别是数据库管理操作。 默认设置为 /var/shm ,并返回到"根目录"。注意,如果Apparmor在你的系统上运行,大多数 它可能会阻止您的测试服务使用它(例如-mysql有它的apparmor配置文件)。你需要 在apparmor配置中禁用此配置文件。 禁用mysqld的apparmor的示例:
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo /etc/init.d/apparmor restart
    < DL>
    内存库目录
    测试服务工件的基本目录(基于内存),内存根目录的唯一子目录。 在测试会话结束时自动递归删除。
    < DL>
    内存温度目录
    临时目录(基于内存),基本目录的子文件夹 < DL>
    锁定目录
    用于存储为资源分配(端口、显示等)创建的锁的lock files目录。子文件夹 内存根目录
    < DL>
    运行目录
    进程id和socket文件目录(类似于系统范围的 /var/run 但对于测试会话是本地的)。子文件夹 内存根目录
    < DL>
    端口采集器
    函数获取未分配的端口。 通过flock自动确保在应用程序级别锁定和解除锁定。
    < DL>
    显示器
    函数获取未分配的显示。 通过flock自动确保在应用程序级别锁定和解除锁定。

维修夹具
    < DL>
    内存缓存
    启动memcached实例。 需要安装pylibmc或memcache,并将其指示为额外的( pip install'pytest services[memcached] )。
    < DL>
    内存缓存插槽
    用于连接的memcached unix套接字文件名。
    < DL>
    memcached_连接
    memcached连接字符串。
    < DL>
    清除内存缓存
    确定是否应在每次测试运行之前清除memcached。默认情况下等于 运行服务 fixture。 需要安装pylibmc或memcache,并将其指示为额外的( pip install'pytest services[memcached] )。
    < DL>
    memcached_客户端
    绑定到服务的pylibmc.client实例。 需要安装pylibmc或memcache,并将其指示为额外的( pip install'pytest services[memcached] )。
    < DL>
    mysql
    启动MySQL服务器实例。
    < DL>
    mysql数据库名称
    初始化mysql服务后要创建的mysql数据库名称 系统 数据库。
    < DL>
    mysql数据库getter
    具有单个参数的函数-数据库名称。为测试创建其他数据库。 用于mysql数据库中的fixture,由mysql使用。
    < DL>
    MySQL连接
    MySQL连接字符串。
    < DL>
    xvfb
    <开始>a href="http://en.wikipedia.org/wiki/xvfb" rel="nofollow">xvfb实例。 < DL>
    xvfb_显示
    用于连接的xvfb显示器。
    < DL>
    xvfb_分辨率 要使用的xvfb显示分辨率。元组形式为 (1366768,8)

实用功能

django设置

在某些情况下,需要在测试运行期间切换django设置,因为要测试几个django项目 单一测试套件。 pytest_services.django_settings 简化了django设置到单个函数调用的切换:

    < DL>
    设置django设置
    重写环境变量并调用settings对象的setup方法重新加载它们。

用法示例:

conftest.py:

frompytest_servicesimportdjango_settingsdjango_settings.clean_django_settings()django_settings.setup_django_settings('your.project.settings')

请注意,nice项目 pytest django 对这种情况没有帮助,因为它是面向单个django项目的,因为 以及标准的django测试技术。只要没有固定设备可以共享,单项目方法就可以很好地工作 它们之间,但是当有fixture要共享时,您可以从加入几个django项目测试中获益 在一次测试运行中,因为所有会话范围的fixture对于所有项目测试只实例化一次。 只有当您有足够大的测试套件并且设备足够重时,才能看到这种好处。

命令行选项

    < DL>
    –运行服务
    强制运行服务,即使测试是以非分布式方式执行的(不带 pytest xdist )。
    < DL>
    –xvfb显示
    跳过xvfb服务运行并使用提供的显示。当您需要运行除xvfb之外的所有服务时非常有用 要调试浏览器测试,例如,如果您使用了带或不带 pytest splinter pytest bdd

示例

测试你的测试。py:

importMySQLdbdeftest_some_mysql_stuff(mysql):"""Test using mysql server."""conn=MySQLdb.connect(user='root')

联系人

如果您有问题、错误报告、建议等,请在 github项目页面

许可证

本软件在麻省理工学院许可证下获得许可

请参见许可文件

版权所有2014 Anatoly Bubenkov,Paylogic International等。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在收到spring mqtt集成中停止重复订阅保留的消息   java改造安卓在textview中显示数据   读取CSV Java时获取While循环中的最后一行数据   将Java程序转换为小程序的部署   java如何在不向Src添加文件的情况下将文件放入GitLab测试   java包含字节数组列表的方法   java十进制转换错误   eclipse是由java引起的。lang.ClassNotFoundException:org。springframework。js。资源ResourceServlet   继承Java向上与向下   java自动调整标签内容的大小   java从Android中的AlertDialog返回信息   java在声明按钮时仿真程序中出现错误   java编写刷新线程的最佳方法   Java初学者错误   java需要帮助重置JComboBox   java如何用Spring/MultipartFile捕获中断流   java是否可以在JUnit中设置被测试类的方法的返回值?