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

AnyTest

by timfjord ST3

从Sublime Text运行任何测试

详细信息

  • 0.7.0
  • github.com
  • github.com
  • 5个月前
  • 1小时前
  • 2年前

安装数

  • 总数 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

源代码
raw.githubusercontent.com

Stand With Ukraine

AnyTest Lint Test

从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

欢迎打开 问题,提出测试框架需求,因为这些框架将首先添加。

安装

  1. 如果您还没有,请安装 Sublime Text Package Control 插件。
  2. 打开命令面板,开始输入 Package Control: Install Package
  3. 输入 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 仓库 中找到。

该包使用 blackflake8isort 进行代码格式化。

鸣谢

AnyTest 非常受 vim-test 插件的启发,因此所有的荣誉都归功于此出色的 Vim 插件的作者和维护者。