插件单元测试框架
这是一个为 sublime 插件的 unittest 框架。支持延迟测试配置,这样你可以将控制权交给 sublime text,然后在几毫秒后继续测试。
详细信息
安装
- 总数 465
- Win 318
- Mac 92
- Linux 55
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 | 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 |
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 |
说明
插件单元测试框架
此插件提供延迟测试用例,使你能够从测试用例中运行 sublime 命令并将控制权交给 sublime text,稍后再次获取它。
用法
为您的测试创建一个文件夹。如果您想保持与 sublime text 2 兼容,您不应在主插件文件夹中将它命名为 "tests",因为会与名称冲突。
以下布局是推荐的
我的花哨插件 - my_fancy_plugin
- __init__.py
- some_file.py
- tests - __init__.py - test_first_collection.py - test_second_collection.py
- My Fancy Plugin.py
- My Fancy Plugin.sublime-commands
- My Fancy Plugin.py
- ... 是您的主要插件文件,它在变更时会自动由 Sublime Text 重新加载。子系统文件夹中的其他 Python 文件不会自动重新加载。这包含您导出到 sublime text 或其他用途的命令。
- My Fancy Plugin.sublime-commands
- 它必须包含一个启动测试的命令:
- [
- { "caption": "My Fancy Plugin: Run Tests",
- "command": "run_plugin_unittest", "args": {"module": "My Fancy Plugin.my_fancy_plugin.tests"} }
]
- my_fancy_plugin/tests/__init__.py
在每次测试中将传递给 run_plugin_unittest 的模块重新加载。所以这个文件负责重新加载测试所需的所有内容。
# this is the class, which is run by run_plugin_unittest from imp import reload # make sure we have got latest changes from . import test_first_collection reload(test_first_collection) from . import test_second_collection reload(test_second_collection) from .. import some_file reload(some_file) # import all testcases from .test_first_collection import * from .test_second_collection import *
- my_fancy_plugin/tests/test_first_collection.py
这包含测试用例
from sublime_unittest import TestCase import sublime class MyTest(TestCase): def test_first(self): view = sublime.active_window().open_file("some file") while view.is_loading(): yield # default is to continue in 10ms self.assertEquals(view.name(), "some file") def test_second(self): view = sublime.active_window().open_file("some file") while view.is_loading(): yield 2 # I specify that sublime shall continue this code in 2ms self.assertEquals(view.file_name(), "some file")
以及如此等等...
简单缓冲区测试
你可以创建这样的简单缓冲区测试
from sublime_unittest import * class MyBufferTest(BufferTest): test_cursor = ( "initial │content of buffer", v('move', {'by': 'characters', 'forward': False}), "initial│ content of buffer", ) # here buffer is selected test_selection = ( "initial content of ┤buffer├", v('insert', {'characters': "view"}), "initial content of view│", ) # multiple cursors test_multiple_cursors = ( "initial ┤content├ of bu│ffer", v('move', {'by': 'characters', 'forward': True}), "initial content │of buf│fer", v('insert', {'characters': 'f'}), "initial content f│of buff│fer", ) # line assertions test_line_assertion = ( unindent(""" first ┤line second├ l│ine """), (2, "second├ l│ine") )
所有测试名称都必须以 'test' 开头
你指定一个文本命令(或视图命令)使用 v,以及一个窗口命令使用 w。
每个字符串代表一个断言。
你可以根据喜好混合命令和断言。
┤ 和 ├ 包围一个选择和一个 │ 是一个空选择,即光标。
注意事项
使用字符表插件,您可以使用快捷键ctrl+k,v,l、ctrl+k,v,r和ctrl+k,v,v来快速输入这些字符
待办事项
- 在打开面板后,添加了一些TestCase.sendkeys()方法来发送按键
变更
- 2014-04-16
- 增加了BufferTest以方便进行缓冲区测试
- 增加了等待某些条件成立后再继续测试的方法
作者
Kay-Uwe (Kiwi) Lorenz <[email protected]> (http://quelltexter.org)
支持我开发Sublime Text插件的工作: Sublime Text 插件: 通过Paypal捐赠