测试钳子
在项目内快速运行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
Sublime Test Plier
主分支 | 开发分支 |
---|---|
此Sublime Text 3插件(仅限)允许Python开发者从项目环境中快速运行(单个或多个)测试。
前言
与其他运行Python测试的插件不同,它们主要使用正则表达式模式来查找指定的测试运行,Sublime Test Plier使用AST(抽象语法树)解析源代码,并定位包含插入符位置的定义的类/方法/函数。找到的结果作为命名参数传递给测试命令,可以是任何东西(py.test
,nosetests
,python 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 颜色。如果已安装插件,这将被自动激活。
贡献
请参阅贡献文档