unittest runner生成test anything协议(tap)输出

simpletap的Python项目详细描述


simpletap是一个与unittest框架集成的测试运行程序 生成与tap(测试任何协议)兼容的输出。

simpletap已经在Python2.7下进行了广泛的测试,并被认为是生产就绪的。
还支持python 3.4-3.5,但还没有看到那么多的测试。

用法

在测试脚本中,而不是:

if__name__=="__main__":unittest.main()

使用:

if__name__=="__main__":fromsimpletapimportTAPTestRunnerunittest.main(testRunner=TAPTestRunner())

像这样的小测试用例:

importunittestclassIntegerArithmeticTestCase(unittest.TestCase):deftestAdd(self):# test method names begin 'test*'"test adding values"self.assertEqual((1+2),3)self.assertEqual(0+1,1)deftestMultiply(self):"test multiplying values"self.assertEqual((0*10),0)self.assertEqual((5*8),40)deftestFail(self):"a failing test"self.assertEqual(0,1)@unittest.expectedFailuredeftestExpectFail(self):"we saw this coming"self.assertEqual(0,1)@unittest.skipIf(True,"Skipping this one")deftestSkip(self):"pending a fix"self.assertEqual(0,1)deftestError(self):"oops something went wrong"no_such_variable+1# Oops!if__name__=="__main__":fromsimpletapimportTAPTestRunnerunittest.main(testRunner=TAPTestRunner())

当保存在名为test.py的文件中并执行时,将产生:

1..6ok1 - test.py: test adding values
not ok2 - test.py: oops something went wrong
# ERROR: NameError on file test.py line 30 in testError: 'no_such_variable + 1  # Oops!':
#        global name 'no_such_variable' is not defined
skip 3 - test.py: we saw this coming
# EXPECTED_FAILURE: AssertionError on file test.py line 21 in testExpectFail: 'self.assertEqual(0, 1)':
#                   0 != 1
not ok4 - test.py: a failing test
# FAIL: AssertionError on file test.py line 16 in testFail: 'self.assertEqual(0, 1)':
#       0 != 1
ok5 - test.py: test multiplying values
skip 6 - test.py: pending a fix
# SKIP:
#       Skipping this one

您还可以直接从命令行启动simpletap,这与使用unittest的方式非常相似:

python -m simpletap test.IntegerArithmeticTestCase

与标准的偏差

test anything协议的规范将跳过的测试视为ok

在使用这个模块的过程中,我们发现将它们作为 以及作为关键字skip下的规范扩展的预期失败。

测试

测试套件配置为通过tox运行。

状态:

https://travis-ci.org/Unode/simpletap.svg?branch=master

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

推荐PyPI第三方库


热门话题
java允许具有不同父类的类扩展类,而无需多重继承   java如何创建动态化的JScrollPane w/JPanel作为客户端?   java如何组织和命名包   在Java中读取属性文件   java无法解释的Android意图行为   在Java中动态执行多个BPEL文件的部署   ssl Java 6 SNI(服务器名称指示)?   java我们可以使用Robot框架自动化web和移动应用程序来执行并行执行   java for star pettern的循环   java为什么BinaryReader在线程中,从netty读取错误的数据包?   在java中将华氏度转换为摄氏度   使用Spark和java处理空值和引号编写CSV文件   Java中已排序日期到块的列表   visual studio代码VSCode Java不是linting或自动完成局部变量,而是自动完成Java快捷方式,如“sysout”