ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

测试钳子

asfaltboy 全部

在项目内快速运行Python测试

详情

安装

  • 256
  • Win 132
  • Mac 74
  • Linux 50
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

README

源代码
raw.​githubusercontent.​com

Sublime Test Plier

主分支 开发分支
Build Status Build Status
codecov codecov

Sublime Text 3插件(仅限)允许Python开发者从项目环境中快速运行(单个或多个)测试。

前言

与其他运行Python测试的插件不同,它们主要使用正则表达式模式来查找指定的测试运行,Sublime Test Plier使用AST(抽象语法树)解析源代码,并定位包含插入符位置的定义的类/方法/函数。找到的结果作为命名参数传递给测试命令,可以是任何东西(py.testnosetestspython manage.py你自己的测试运行器)。

用法

最简单的用法是简单地运行构建系统; ctrl+shift+b(在macOS上为super+shift+b),然后在构建系统选择下拉菜单中选择<强>test_plier - Python Tests;使用后,您可以按ctrl+b(在macOS上为super+b)再次运行构建系统。或者,选择<强>test_plier - Python Tests (external)以在外部终端窗口中运行测试。

注意:这是通过使用与SublimeText启动时相同的环境变量运行的测试运行器可执行文件来实现的;这在最简单的情况下是可行的,但对于大多数项目,您可能需要配置测试环境;有关此的更多详细信息,请参阅下面的配置部分

运行特定测试

这是使用Test Plier的主要原因:您可以使用它通过在运行测试前在所需的测试位置放置插入符来运行指定的测试模块、类或函数。所有占位符都在cmd中由找到的测试和所选文本替换。

启动外部终端窗口

默认情况下,测试命令会被传递给 SublimeText 内置的 exec 命令,该命令会启动命令并将它的输出管道到编辑器中的构建结果面板。

在大多数情况下,这已经足够了;但有时,需要一个外部终端窗口,通常需要用户输入时(例如输入 pdb)。幸运的是,现在可以将测试命令传递到外部终端窗口中运行。

如果设置了 RunPythonTestsCommand.external_runner(例如在一个子类中),或者构建系统的 kwargs 包含一个 “external” 属性,就会执行给定的命令数组。

现有的命令 kwargs 被解析为一个“shell-friendly”命令(分隔的参数),该命令作为“external”命令传递。

默认/示例

外部命令执行辅助程序的示例可以在 utils/ 子目录中找到。当“external”命令参数设置为 true 时,会启动 utils/run_externally.py,并启动一个子进程调用 osascript launch_in_iterm.applescript 以在 iTerm 会话中运行测试(《iTerm 是一个 OSX 终端》)。

如果你添加了自己的终端/os,别忘了提交一个 pull-request :) !

配置

测试命令

默认情况下,我们运行的命令是 pytest {filename}::{test_class}::{test_func} -k {selection} --doctest-modules -v。让我们更详细地看看替代参数。

  • --doctest-modules - 如果没有提供 UnitTest 类/方法,运行模块 unittests
  • -v - 详细测试输出

占位符参数是可选的,并且在可能的情况下将被干净地移除

  • {filename} - 测试目标文件
  • {test_class} - 测试目标类
  • {test_func} - 测试目标函数/方法
  • -k {selection} - 使用选定的文本作为模式

您可以在您的 project.sublime-project 设置中自定义命令及其任何参数(所有参数都是可选的)。

构建参数

设置您的构建系统时,您可以指定额外的参数

argument 描述
cmd 根据上述部分描述的行命令参数列表
env 作为键值对传递给过程的 ENV_VARIABLE:“值”
extra_cmd_args 添加到默认命令的额外参数
working_dir 设置工作目录(需要导入当前运行的模块)
python_executable 到 Python 可执行文件的绝对路径,用于运行模块解析(AST),而不是内置的 Python 版本(截至 Sublime Text 3 构建版本 3124 限制为 3.3,到 2019 年 7 月为止)
sep_cleanup 覆盖默认分隔符(“::”)以清除插值部分之间的内容。
syntax 用于样式化构建结果面板的语法文件
external 设置为 true 以运行默认的外部命令(一个启动现有或新 iTerm 窗口中测试的 Python 脚本);也可以是一个参数列表,以启动自定义命令(请参阅 utils/__init__.py 中的 get_default_command() 函数示例,以及上面的相关部分

重要提示:构建系统的唯一必需参数是 target。它必须设置为 run_python_tests 命令,以便使用 SublimeTestPlier 的命令执行构建。

示例

例如,Django 的测试运行器可以像这样运行

{
    "build_systems":
    [
        {
            "cmd":
            [
                "python",
                "manage.py",
                "test",
                "--noinput",
                "{filename}:{test_class}.{test_func}",
                "--settings=test_settings"
            ],
            "env":
            {
                "PYTHONPATH": "/home/user/.venvs/project/lib/python2.7/site-packages",
                "REUSE_DB": "1"  // WARNING: remember to use strings as values
            },
            "name": "Django Test",
            "target": "run_python_tests",
            "working_dir": "${project_path}/project/"
        }
    ]
}

py.test 运行器可以配置如下

{
    "build_systems":
    [
        {
            "cmd": [
                "/home/user/.venvs/project/bin/pytest",
                "{filename}::{test_class}::{test_func}",
                "-k {selection}",
                "--doctest-modules",
                "-v"
            ],
            "name": "Pytest Runner",
            "target": "run_python_tests"
        }
    ]
}

有关 SublimeText 构建系统配置的更多信息,请参阅 非官方文档

Sublime ANSI

此插件支持通过 SublimeANSI 传递命令以在 ST 输出面板中显示 ANSI 颜色。如果已安装插件,这将被自动激活。

贡献

请参阅贡献文档