为猫测试任何协议处理
taptaptap3的Python项目详细描述
name: | taptaptap |
---|---|
Author: | Lukas Prokop |
Date: | Feb-Apr 2014, Jul 2018 |
license: | BSD 3-clause |
Version: | 3.0.0 |
issues: | http://github.com/meisterluk/taptaptap3/issues |
为爱猫人士测试任何协议处理*rawwr*
taptaptap3提供解析器、编写器和api来处理test anything协议(tap)。实现的重点是最新的tap版本13。tap源于perl社区,但它是记录testsuites运行的通用格式。提到猫只是一个双关语,表示猫在地板上偷偷摸摸的声音,“3”是“<;3”的一部分,因此是“情人”。
Compatibility
taptaptap3只应该用于python 3.5以上。 它是作为包taptaptap为python 2.7编写的,这个实现是python3的一个端口。 它已经在Xubuntu 18.04(Linux 4.15 x86_)上用Python3.6.5进行了测试
Testsuite & Examples
taptaptap3附带了一个testsuite,它涵盖了tap格式的许多特殊情况,并测试了所提供的api。请不要犹豫报告任何issues。
您可以使用:
./run.sh
在测试目录中。testsuite还显示了一些api使用示例,但我想在这里提供一些。如果您使用的是python repl:
from taptaptap3.proc import plan, ok, not_ok, out plan(tests=10) ok('Starting the robot') not_ok('Starting the engine') not_ok('Find the object', skip='Setup required') not_ok('Terminate', skip='Setup required') out()
输出如下:
1..10 ok - Starting the robot not ok - Starting the engine not ok - Find the object # SKIP Setup required not ok - Terminate # SKIP Setup required
请注意,状态存储在模块中。如果你在REPL之外,这不是你想要的。在这种情况下,TapWriter类更方便:
import taptaptap3 writer = taptaptap3.TapWriter() writer.plan(1, 3) writer.ok('This testcase went fine') writer.ok('And another one') writer.ok('And also the last one')
如果您喜欢python的生成器,则需要使用SimpleTapCreator:
@taptaptap3.SimpleTapCreator def runTests(): yield True yield True yield False print runTests()
给我们:
1..3 ok ok not ok
或者看看更复杂的TapCreator。如果您是一个真正的专家,您可以直接使用TapDocument,这涵盖了tap的所有可能性。
Command line tools
您还可以直接从命令行调用taptaptap3:
python -m taptaptap3.__main__ some_tap_file_to_validate.tap
此命令将解析文件并以模块理解的方式写入文件。退出代码表示其有效性:
- 0 一切都很好。
- 1
- TAP文件缺少一些测试用例或包含失败的测试用例。
- 2 提出了一项救助计划。因此,测试环境在运行期间崩溃。
Pickling
所有对象都是可拾取的。
When to use ^{tt1}$
taptaptap3满足您的需求吗? 如果您正在为tap文档寻找一个解析器和验证器,而您不想关心细节,只需要一个温和的api,那么就可以了。
谨致问候, 梅斯特鲁克