AnyTest
从Sublime Text运行任何测试
详细信息
安装数
- 总数 238
- Win 125
- Mac 79
- Linux 34
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 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 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
AnyTest
从Sublime Text运行任何测试
一个Sublime Text 3包,其主要思想是自动检测给定文件对应的测试框架并运行。这是对优秀的vim-test插件的Sublime Text解释。
目前,以下测试框架得到支持(更多测试框架即将到来)
语言 | 测试框架 | 标识符 |
---|---|---|
Elixir | ESpec, ExUnit | espec , exunit |
Go | Delve, Ginkgo, Gotest | delve , ginkgo , gotest |
Java | JUnit (支持Maven或Gradle) | junit |
JavaScript | Jest, Mocha, Vitest | jest , mocha , vitest |
Python | Behave, Django(包含Nose), Mamba, Nose, Nose2, PyTest, PyUnit | behave , django , mamba , nose , nose2 , pytest , pyunit |
Ruby | Cucumber, M, Minitest, Rails, RSpec, Test Bench | cucumber , m ,minitest , rails , rspec , test_bench |
Rust | Cargo | cargotest |
Swift | XCTest | xctest |
Zig | Zigtest | zigtest |
欢迎打开 问题,提出测试框架需求,因为这些框架将首先添加。
安装
- 如果您还没有,请安装 Sublime Text Package Control 插件。
- 打开命令面板,开始输入
Package Control: Install Package
。 - 输入
AnyTest
。
使用方法
该插件暴露的命令主要是 any_test_run
。它支持以下4个范围
• suite范围
{ "command": "any_test_run", "args": { "scope": "suite" } }
或者在命令面板中选择 AnyTest: Test suite
。
运行整个测试套件(基于当前文件)
• file范围
{ "command": "any_test_run", "args": { "scope": "file" } }
或者在命令面板中选择 AnyTest: Test file
。
运行当前文件中的所有测试
• 行范围
{ "command": "any_test_run", "args": { "scope": "line" } }
或者在命令面板中选择 AnyTest: Test line
。
运行与当前行(光标)最近的测试
• last范围
{ "command": "any_test_run", "args": { "scope": "last" } }
或者在命令面板中选择 AnyTest: Test last
。
运行最后一个测试
插件尝试根据当前文件检测测试框架。检测到框架后,插件生成命令并使用选择的执行器运行。
当 edit
标志传递到 true
时,可以在运行之前编辑命令。
最后,如果 select
标志传递到 true
,则绕过自动检测功能,显示包含所有可用测试框架的快捷面板,允许手动选择测试框架。
该插件保存了10个最近的测试命令在历史记录中,可以使用 AnyTest: Show history
命令访问。
可以使用 AnyTest: Clear history
命令清除历史记录。
该插件为没有内置运行当前行测试支持的测试框架提供了polyfills。
所有polyfills均已从 vim-test
插件借用并适应到 Sublime Text。
所有插件命令可以在 Default.sublime-commands 中找到。
默认情况下,该插件没有定义任何键绑定,运行 首选项:AnyTest 键绑定
以定义您自己的绑定。
配置
该插件可以全局或项目级别进行配置。在项目级别定义的设置将覆盖全局定义的设置。
为了在项目级别配置该插件,所有设置都必须添加到 AnyTest
命名空间下
{
"folders": [
{
"path": ".",
}
],
"settings": {
"AnyTest": {
"test_frameworks": {
"python": "pyunit"
},
"python.pyunit.runner": "unittesting"
}
}
}
该插件为其设置提供了模式,因此建议安装 LSP-json 以启用设置自动完成。
要查看所有可用设置,请检查 AnyTest.sublime-settings。
默认情况下,该插件遍历所有可用测试框架以检测要使用的框架。这可以通过 test_frameworks
设置来更改
"test_frameworks": {
"python": "pyunit"
}
或
"test_frameworks": {
"python": ["pyunit", "pytest"]
}
这样将忽略所有其他测试框架。
此外,一些语言支持指定测试框架,例如
"python.test_framework": "pytest"
这不会更改检测过程,但如果存在多个候选者,则将使用指定的框架。
项目文件夹和子项目
该插件支持多个项目文件夹。当存在包含单独项目的嵌套文件夹时,这非常有用。插件可以检测这种情况并正确计算根路径。
处理嵌套项目的另一种方法是使用 subprojects
设置(通常在项目配置中)
{
"folders": [
{
"path": ".",
}
],
"settings": {
"AnyTest": {
"subprojects": [
"subfolder1/subfolder1_1",
["subfolder2", "subfolder2_1"]
]
}
}
}
子项目可以是一个字符串或字符串数组(路径分隔符将自动添加)。
运行器
该插件提供了3个运行器
command
terminus
console
默认运行器是 command
。它使用内置的 Sublime exec
命令(命令可进行配置)来运行测试命令。
由于 command
运行器功能有限,因此建议安装 Terminus 扩展包,并使用 terminus
运行器。
console
运行器主要用于测试/调试,其主要目的是将测试命令和元数据输出到控制台。
运行器可以全局激活,也可以针对特定语言或框架激活。
"runner": "terminus",
"python.runner": "command",
"python.pyunit.runner": "unittesting"
请查阅 AnyTest.sublime-settings 以查看所有可用设置。
还有一个 unittesting
运行器,用于使用 UnitTesting 测试 Sublime 包。
不幸的是,由于 UnitTesting
的限制,无法运行当前行的测试。
只有在使用 PyUnit 测试框架时,使用 unittesting
才有意义,通常它是这样激活的:
"python.pyunit.runner": "unittesting"
路线图
- 添加更多测试框架(最终目标是至少支持
vim-test
所支持的测试框架) - 在侧边栏中运行测试(包括测试文件夹)
- 可能与 Sublime Debugger 集成
贡献
添加新测试框架的最简单方法是找到它在 vim-test 仓库 中的位置,并尝试将其适配。
还需要为测试框架编写测试。测试和固定件也可以在 vim-test 仓库 中找到。
该包使用 black
、flake8
和 isort
进行代码格式化。
鸣谢
AnyTest
非常受 vim-test 插件的启发,因此所有的荣誉都归功于此出色的 Vim 插件的作者和维护者。