ato*_*ter 27
您可以通过设置自定义比较功能来更改默认排序行为.在unittest.py中,您可以找到默认unittest.TestLoader.sortTestMethodsUsing设置为内置函数的类变量cmp.
例如,您可以通过执行以下操作恢复测试的执行顺序:
import unittest
unittest.TestLoader.sortTestMethodsUsing = lambda _, x, y: cmp(y, x)
Run Code Online (Sandbox Code Playgroud)
S.L*_*ott 16
聪明的命名.
class Test01_Run_Me_First( unittest.TestCase ):
def test010_do_this( self ):
assertTrue( True )
def test020_do_that( self ):
etc.
Run Code Online (Sandbox Code Playgroud)
是强制特定订单的一种方法.
如上所述,通常在测试用例中的测试应该以任何(即随机)顺序进行测试.
但是,如果您确实想在测试用例中订购测试,显然这并非易事.使用测试用例检索测试(方法名称)dir(MyTest),返回已排序的成员列表.您可以使用聪明的(?)hack按行号来命令方法.这适用于一个测试用例:
if __name__ == "__main__":
loader = unittest.TestLoader()
ln = lambda f: getattr(MyTestCase, f).im_func.func_code.co_firstlineno
lncmp = lambda a, b: cmp(ln(a), ln(b))
loader.sortTestMethodsUsing = lncmp
unittest.main(testLoader=loader, verbosity=2)
Run Code Online (Sandbox Code Playgroud)