Nginx Pytest夹具-IPLWEB临时叉

pytest-nginx-iplweb的Python项目详细描述


pytest nginx

pytest nginx是一个pytest插件,它允许您测试代码,这需要 与成熟的web服务器通信。可以制作定制夹具 管理服务器根目录的内容。

用法

插件包含一个固定装置:

  • nginx_proc-会话范围的fixture,它用 为静态文件提供服务的最基本配置。
  • nginx_php_proc-会话范围的fixture,它管理nginx守护进程 以及php fpm守护进程,两者都配置为协同工作。

所有fixture都取管理服务器根目录的fixture的名称。在 最简单的情况是使用 tmpdir_factory内置设备:

frompytest_nginximportfactories@pytest.fixture(scope="session")defnginx_server_root(tmpdir_factory):returntmpdir_factory.mktemp("nginx-server-root")nginx_proc=factories.nginx_proc("nginx_server_root")

要管理服务内容,可以创建其他模块或 功能范围的固定装置位于nginx_proc

@pytest.fixture(scope="module")defnginx_hello_world(nginx_proc):f=open(os.path.join(nginx_proc.server_root,"index.html"),"w")f.write("Hello world! This is pytest-nginx serving on host {}, port {}.".format(nginx_proc.host,nginx_proc.port))f.close()returnnginx_proc

配置

可以通过三种方式定义设置:使用fixture factory参数, 使用命令行选项和pytest.ini配置选项。这些 设置按以下顺序处理:

  1. fixture factory参数
  2. 命令行选项
  3. pytest.ini配置选项
Fixture factory argumentCommand line optionpytest.ini optionDefault
host–nginx-hostnginx_host127.0.0.1
port–nginx-portnginx_portrandom
nginx_exec–nginx-execnginx_execnginx
nginx_params–nginx-paramsnginx_params“”
nginx_config_template–nginx-config-templatenginx_config_templateauto-generated
php_fpm_exec–php-fpm-execphp_fpm_execphp-fpm
php_fpm_params–php-fpm-paramsphp_fpm_params“”
php_fpm_config_template–php-fpm-config-templatephp_fpm_config_templateauto-generated

显示如何指定端口号的示例:

  • 将其作为参数传递给工厂函数:

    nginx_proc=factories.nginx_proc(port=8888)
  • 运行pytest时使用--nginx-port命令行选项:

    pytest ./tests --nginx-port=8888
    
  • nginx_port选项添加到pytest.ini文件:

    [pytest]nginx_port=8888

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

推荐PyPI第三方库


热门话题
java方法来评估安卓中任何旨在提高性能的变化   java是模拟大量用户对web服务请求的好方法吗?   java在从中检索整数时遇到问题。性质   JBoss发布期间的java问题   java如何在安卓应用程序中运行重命名shell命令(根目录)   java JafaFX ListView更改单个单元格/项目/行的颜色   java Queue RingBuffer实现Queue12。不起作用   java Spring启动404未找到错误   从Java运行cygwin编译程序   java显示10椭圆时的新行   java Serenity报告屏幕截图不起作用   javascript如何从angularJS向java函数发送JSON数据   @ManyToMany连接的java订单结果列表   java为什么这里不遵循运算符优先级?   继承在Java中,子类可以继承哪些方法?   Eclipse RCP应用程序中的java动态语言切换   java是否需要同步ConcurrentHashMap<K,V>中只返回值作为对象的函数?   调用java可执行文件并捕获异常的Shell脚本