关于项目

使用 pytest 集成到 Neovim 中的 Python 测试插件。包含 Docker 支持。本项目正在开发中,未来会添加更多功能,欢迎贡献。

快速上手

以下说明将帮助你在 Neovim 环境中设置和使用 pytest.nvim

前置条件

安装

  1. 使用你喜欢的插件管理器安装 pytest.nvim 插件:

Lazyvim:

{
 "richardhapb/pytest.nvim",
 opts = {}
}

Packer:

use {
 "richardhapb/pytest.nvim",
 opt = true
}

Vim-Plug:

Plug 'richardhapb/pytest.nvim'

使用方法

  1. 如果尚未加载,请在 Neovim 配置文件中加载 pytest 插件。例如:
require('pytest').setup()
  1. 使用 :Pytest 命令在当前 buffer 中运行测试。

    • 检查整个 buffer:
:Pytest
*   检查测试输出:
:PytestOutput
*   将测试附加到当前 buffer,这会在保存时运行测试:
:PytestAttach
*   从当前 buffer 中分离测试:
:PytestDetach
*   启用 Docker 支持:
:PytestEnableDocker
*   禁用 Docker 支持:
:PytestDisableDocker

运行 :Pytest 的默认快捷键是 <leader>T

默认配置

插件提供以下默认键位映射:

以下是默认设置,不一定需要设置,但你可以在配置文件中更改这些设置。

require 'pytest'.setup {
  docker = {
   enabled = true, -- 启用 Docker 支持
   container = 'app-1', -- 运行测试的容器
   docker_path = '/usr/src/app', -- 这是默认路径,如果使用 docker compose,则从 docker compose 文件中获取
   docker_path_prefix = 'app', -- 这是本地 cwd 中路径的前缀,例如:root/app/<docker_app_content>
   docker_compose_file = 'docker-compose.yml', -- 这是默认的 docker compose 文件名
   docker_compose_service = 'app', -- 用于在 docker compose 中查找 docker 路径
   enable_docker_compose = true, -- 启用 docker compose 支持
  },
  -- 你可以使用自定义键位映射覆盖此回调,
  -- 这会在打开 Python 文件时调用,并将 buffer 编号作为参数传递
  keymaps_callback = function(bufnr)
   vim.keymap.set('n', '<leader>TT', '<CMD>Pytest<CR>', { buffer = bufnr, desc = 'Run Pytest' })
   vim.keymap.set('n', '<leader>Ta', '<CMD>PytestAttach<CR>', { buffer = bufnr, desc = 'Attach Pytest to buffer' })
   vim.keymap.set('n', '<leader>Td', '<CMD>PytestDetach<CR>', { buffer = bufnr, desc = 'Detach Pytest' })
  end
}

选项可以是回调函数,例如:

require 'pytest'.setup {
  docker = {
   enabled = function()
     return vim.fn.getcwd():match(".*/(.*)$") == "work" -- 仅当 cwd 的最后一个目录是 "work" 时才启用 Docker
   end,
   container = function()
     local app = utils.get_my_awesome_app()
     return app .. '-version-2'
   end
  },
}

关于

用于 Python 测试的 Neovim 插件

资源

Stars

Watchers

Forks