tl.testing提供了各种实用工具,可以编写测试时使用 它是兼容的Python版本2.6和2.7。
目录和文件的沙箱
当测试获得修改的目录和文件的代码,它是能够容易地创建和检查的目录和文件的样本树是有用的。该tl.testing.fs模块,提供了从文字描述创建一棵树,它列出了相同的格式和后自行清理的支持。
在一个文档的测试,这些设施可用于这样的创建和列出目录,文件和符号链接:
>>>从tl.testing.fs进口new_sandbox,LS
>>> new_sandbox(“”“
.... D FOO
... F FOO /条ASDF
... L巴兹 - >富/酒吧
......“”“)
>>> LS()
升巴兹 - >富/酒吧
ðFOO
˚F富/酒吧ASDF
看到进一步的建议,包括如何设置和拆除使用文件系统沙箱测试的源代码中找到的文件fs.txt。
安装脚本调用
有些功能人们可能希望测试利用外部程序,如寻呼机或文本编辑器。该tl.testing.script模块提供了在代码进行测试会发现他们的地方安装简单的模拟脚本实用程序。他们采取的Python代码字符串,并创建设置python路径以匹配测试和运行代码的包装脚本。
这是怎么这么模拟脚本可能在文档测试中使用:
>>>从tl.testing.script进口安装
>>> script_path =安装(“打印”一个简单的脚本。“)
>>>打印开(script_path).read()
#!...
进口SYS
的sys.path [:] = [...]
打印“一个简单的脚本。”
>>>导入子
>>>分= subprocess.Popen(script_path,壳=真正的,标准输出= subprocess.PIPE)
>>>标准输出,标准错误= sub.communicate()
>>>打印标准输出
一个简单的脚本。
看到并使用模拟脚本进一步的可能性如何安装接入模拟脚本以及如何推倒测试的源代码中找到的文件script.txt。
DOC-测试开罗表面的图形内容
虽然它是直着比较在Python代码的两个开罗表面的内容,处理图形超出文档测试。然而,曼努埃尔包可用于从一个文本文档,同时允许将它们混合使用文档测试以自然的方式来提取更一般的测试用例。
该tl.testing.cairo模块提供了一个使用曼努埃尔执行制定的重组文本数字图形测试一个测试套件工厂。这样一个数字的标题应该是它的值是一个开罗表面文字Python表达式,它的形象被用作测试的期望。
这是怎样一个表面可能会比在文档测试预期图像:
>>>进口开罗
>>>从通过pkg_resources进口resource_filename
>>>图象= resource_filename('tl.testing','testimages / correct.png')
。图:: TL /测试/ testimages / correct.png
 ``cairo.ImageSurface.create_from_png(图片)``
看到进一步的建议和可能的测试输出文档的源代码中找到的文件cairo.txt。
与线程工作在测试代码
该标准的TestCase类没有收集发生在其他线程不是主要的一个错误和失败。该tl.testing.thread模块提供了线程类和ThreadAwareTestCase类,允许这一点,还有一些其他的便利为处理的线程测试:防止螺纹预计未处理的异常被打印的测试输出,报告主题留下经测试,在一个守护线程中运行的代码,连接螺纹和计数测试期间的运行时间线程开始:
>>>导入时间
>>>进口tl.testing.thread
>>>类SampleTest(tl.testing.thread.ThreadAwareTestCase):
...
...高清test_error_in_thread_should_be_reported(个体经营):
...与tl.testing.thread.ThreadJoiner(1):
... self.run_in_thread(拉姆达:1/0)
...
...高清test_active_count_should_count_only_new_threads(个体经营):
...与tl.testing.thread.ThreadJoiner(1):
... self.run_in_thread(拉姆达:time.sleep(0.1))
... self.assertEqual(1,self.active_count())
... self.assertEqual(0,self.active_count())
>>>导入单元测试
>>>运行(unittest.makeSuite(SampleTest))
================================================== ====================
ERROR:test_error_in_thread_should_be_reported(__builtin __ SampleTest。)
-------------------------------------------------- --------------------
回溯(最近通话最后一个):
  ...
ZeroDivisionError:整数除法或者模零
-------------------------------------------------- --------------------
跑了2测试,N.NNNs
失败(错误= 1)
见thread.txt与用于ThreadAwareTestCase类的更多详细信息的源代码中找到的文件。
构造使用曼努埃尔测试套件
由于曼努埃尔提供除标准的文档测试了一些强大的功能,曼努埃尔测试套件都设置略有不同标准的。该tl.testing.doctest模块实现DocFileSuite工厂可以像标准之一,但创建一个使用曼努埃尔测试套件,并允许相关曼努埃尔一些额外的配置,其中解释了脚注习惯使用过时的完成能力zope.testing.doctest:
>>> sample_txt =写(“sample.txt的”“,”“
... [#footnote] _
... >>> X
1 ...
...
...... [#footnote]
... >>> X = 1
......“”“)
>>>从tl.testing.doctest进口DocFileSuite
>>>运行(DocFileSuite(sample_txt,脚注= TRUE))
-------------------------------------------------- --------------------
跑了1测试N.NNNs
行
>>> sample_txt =写(“sample.txt的”“,”“
... ..代码块::蟒蛇
... X = 1
...
... >>> X
1 ...
......“”“)
>>>进口manuel.codeblock
>>>运行(DocFileSuite(sample_txt,曼努埃尔= manuel.codeblock.Manuel()))
-------------------------------------------------- --------------------
跑了1测试N.NNNs
OK
要求:
- 在Python中
评论没有发现