使用pytest开发python项目测试套件的基本配置和实用程序。
pytest-config的Python项目详细描述
安装
pip install git+git://github.com/buzzfeed/pytest_config.git@<version>#egg=pytest_config==<version>
这将安装:
- pytest配置py.test插件
- 一个简单的django应用程序,它扩展了django-admin.py startapp(正在开发中)。
- 初始化新配置文件的pytest_config.init命令
- 以交互方式更新配置文件的pytest_config.update命令 根据最新的默认值。
功能
自动修复sys.path已知问题。
pytest_config负责pytest和pytest django之间的sys.path已知issue 在测试运行之前自动将当前工作目录添加到PYTHONPATH。
配置文件管理
$ pytest_config.init [options]
此命令将复制轻松配置所需的所有配置文件 py.test和coverage。注意这个命令,因为它只会替换任何 在当前目录< /强>中存在的配置文件。
$ pytest_config.update [options]
此命令将读取默认配置文件和 配置文件。如果自定义配置中的任何选项不同 在默认设置中,如果要保留当前设置,系统将提示您。 如果拒绝,默认值将保存到本地配置。
可用选项
前面两个命令共享一些接口,如下所示:
- pytest_config.[init|update]-h打印帮助页。
- pytest_config.[init|update]--coverage使命令应用其操作 仅适用于.coveragerc文件。
- pytest_config.[init|update]--pytest-ini使命令应用其操作
- 仅适用于pytest.ini文件。
pytest_config.update还有其他选项,不过:
- pytest_config.update -y使进程静音,这样就不会提示您 任何事。如果使用此选项,将自动应用所有默认值。
自动测试标记
pytest_config在运行时使用基于 测试所在的目录,因此在此架构下:
project_root/ app_name/ tests/ # root `tests` directory ├── __init__.py └── app_name/ ├── __init__.py ├── integration/ │ ├── __init__.py │ └── test_foo.py └── unit/ ├── __init__.py └── test_bar.py
- app_name/unit/*.py中的测试函数/方法将标记为 @pytest.mark.<app_name>和@pytest.mark.unit
- app_name/integration/*.py中的测试函数/方法将标记为 @pytest.mark.<app_name>和@pytest.mark.integration
等等。这将允许您通过运行:
$ py.test -m unit $ py.test -m integration $ py.test -m app_name $ py.test -m 'app_name and <type>' $ py.test -m '<type> and app_name'
与Caliendo的集成
以下命令行参数已添加到py.test
中以进行集成
与Caliendo:
- py.test --caliendo:在测试中启用
caliendo
的整体使用。 - py.test --caliendo-prefix path/to/caliendo/files:设置caliendo所在的路径 文件应该存在。如果您是自己定义的,建议您将其设置为路径 相对于当前工作目录,即caliendo,./caliendo, whatever/caliendo,而不是绝对路径。默认为$PWD/caliendo。
- py.test --caliendo--caliendo-purge:设置CALIENDO_PURGE环境变量,以便 caliendo可以清除未使用的缓存、evs等。
- py.test --caliendo--caliendo-prompt:设置CALIENDO_PROMPT环境变量 这样您就可以使用caliendo内置的交互式prompt