为猫测试任何协议处理

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进行了测试

The File Format

维基百科提供了一个基本的介绍。格式由Perl社区指定。

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,那么就可以了。

谨致问候, 梅斯特鲁克

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
隐写术中随机lsb位的java访问   java如何使用GZIP压缩Http Post正文   java Mockito的when()不是stubing超类的方法   java安卓:片段中的Setter&在recycleServiceAdapter中获取字符串   用JDBC进行简单的客户端中间件仿真   JavaF:param返回null?   Java413语音错误   java获取子文档中的数据   启用持久性的java嵌入式HornetQ无法使用编程配置启动   运行spring引导jar工件时出现java“在METAINF/spring.factories中找不到自动配置类”错误   java如何格式化Spring引导的GET请求中的对象   swing Java填充自定义形状   Java仅在超类中处理序列化   在java应用程序中使用ftp4j库下载/上载时发生FTP错误   java准备语句作为sql参数