DTest是一个测试框架,类似Python所提供的标准单元测试包。的增值为DTest,但是,是测试执行线程,通过使用eventlet包。该DTest包还提供测试和测试夹具之间的“相关性”的概念 - 因此,“D”,在“DTest” - 这确保测试不运行,直到匹配设立测试夹具已经完成,那推倒测试装置不运行,直到所有的相关测试已经完成。依赖关系,也可以使用,以确保需要的某些功能的可用性测试不运行,如果该特定功能的测试失败。
编写测试
最简单的测试程序简单函数的名字与位于Python源文件的名称也以“测试”开始的“测试”。它甚至没有必要导入DTest框架的任何部分。如果测试是在收集类,但是,如果使用DTest的更高级的功能需要,从dtest进口*简单是必要的。这使得可用DTestCase类 - 以及此类装饰器作为@skip和@nottest - 应当由含有测试所有的类进行扩展。
测试可以使用标准的Python断言语句来执行;然而,是dtest.util模块(也可安全用于导入*)可用多项实用例程。许多这些实用程序具有类似于unittest.TestCase的方法名字 - 例如,dtest.util.assert_dict_equal()是类似于unittest.TestCase.assertDictEqual()。
测试夹具
该DTest框架支持的测试夹具 - 建立和拆除功能 - 在类,模块和封装级。包级别的装置包括()包含在“__init__.py”文件命名设置功能和tearDown();同样,模块级的装置组成的函数中包含测试函数和类的测试方法沙美岛模块设置()和tearDown()。在类级别,类别可能包含setUpClass()和tearDownClass()类方法(或静态方法),这可以执行建立和拆除为每个类。在所有情况下,设置()函数和setUpClass()方法之前的任何同一范围内的测试被执行;同样地,所有的测试在给定的范围已经执行后,相应的tearDownClass()方法和tearDown()函数被执行。
该DTest框架还支持每个测试设置()和tearDown()函数或方法,它前后各相关测试后运行。对于包含测试类,每个测试自动有设置()和tearDown(),与之相关的类的方法;然而,对于所有的测试,这些装置可以被显式地设置(或从类默认覆盖)。请看下面的例子:
@istest
DEF test_something():
 #测试的东西在这里
 通
@ test_something.setUp
DEF something_setup():
 #获取一切准备就绪整装待发...
 通
@ test_something.tearDown
DEF something_teardown():
 #清理后自己
 通
在这个例子中,一个DTest装饰(比@nottest其他)是必要的前述test_something();在这里,我们使用@istest,但任何其他可用DTest装饰器可以在此使用。这使得@ test_something.setUp和@ test_something.tearDown装饰用。 (对于标准Python类似的东西,检查出的内置@property装饰)。
运行测试
运行使用DTest框架测试是相当直接的。所谓运行dtests的脚本可用。默认情况下,在当前目录中扫描所有模块或包的名称以“测试”;搜索也向下递归遍历所有的包。 (一“包”被定义为包含“__init__.py”的目录)。一旦所有的试验中发现,它们被随后执行,并且测试结果发射到标准输出。
几个命令行选项可用于控制运行dtests的行为。例如,“--no跳过”选项将导致运行dtests运行所有测试,即使是那些装饰着@skip装饰,而“-d”选项使运行dtests来搜索一个特定的目录,而不是当前目录。有关选项的完整列表,请使用“-h”或“--help”选项。
在命令行中运行运行dtests不运行测试的唯一方法,但是。运行dtests脚本是一个非常简单的脚本解析命令行选项(使用由dtest.optparser()函数构造的OptionParser),转换这些选项为一组关键字参数(使用dtest.opts_to_args()),然后通过这些关键字参数来dtest.main()函数。用户可以利用这些功能来建立相同的功能与用户相关的扩展,如提供一个备用DTestOutput实例来控制如何测试结果显示,或用于控制哪些测试被跳过提供的替代方法。见这些函数和类的文档字符串的更多信息
要求:
- 在Python的
评论没有发现