为猫测试任何协议处理

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第三方库


热门话题
java Intellij通过方法中的包查找用法   java中VS代码和打包命名的问题   将java CMS功能集成到具有高度动态内容的网站(Lucene/Mysql/Nosql)的策略   oracle的java类强制转换异常。jdbc。驾驶员OracleConnection   字节码向JVM添加上指令   如何在抽象类中执行java方法?   java是否可以在apache访问日志中排除指定的GET参数?(作者:W7开发环境)   java如何获取已安装音频播放器的列表?   尝试向HS学生展示如何使用Java访问MS数据库   使用正则表达式java对给定行中的特定字符串进行计数   java JOOQ Select查询中的Select计数   方法Java,如何从二维双精度数组中找到特定值?   获取图像URL的java正则表达式   java在切换到新的窗口驱动程序后找不到元素