您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

鼻子,unittest.TestCase和元类:未发现自动生成的test_ *方法

鼻子,unittest.TestCase和元类:未发现自动生成的test_ *方法

因此,在仔细检查了stdlibunittest和鼻子的加载器和选择器源代码之后,事实证明鼻子重写unittest.TestLoader.getTestCaseNames将使用其自己的选择器(带有插件点)。

现在,鼻子的选择器将寻找一种可能的方法method.__name__来匹配某些正则表达式,黑白列表以及插件的决策。

在我的情况下,动态生成函数具有testable.__name__ == '<lambda>',不匹配鼻子的选择器条件。

修理,

        # inject methods: test{testname}_v4,6(self)
        for suffix, arg in (('_false', False), ('_true', True)):
            testable_name = 'test{0}{1}'.format(testname, suffix)
            testable = lambda self, arg=arg: meth(self, arg)
            testable.__name__ = testable_name    # XXX: the fix
            attrs[testable_name] = testable

当然可以:

(sand@R_153_2419@-2.7)bash-3.2$ nosetests -vv 
test_normal (test_testgen.TestCase) ... ok
test_that_false (test_testgen.TestCase) ... ok
test_that_true (test_testgen.TestCase) ... ok
test_this_false (test_testgen.TestCase) ... ok
test_this_true (test_testgen.TestCase) ... ok

----------------------------------------------------------------------
Ran 5 tests in 0.005s

OK
其他 2022/1/1 18:46:47 有594人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶