小编Pon*_*nds的帖子

对于unittest.TestCase子类,当run table执行runcases时无法获取class属性

我想在测试方法中为类属性设置一个值,并在另一个测试方法中使用具有相同类属性的值.当我通过run方法执行测试用例以正常方式尝试时,得到错误AttributeError: 'Unit' object has no attribute 'b'.无论如何,我通过使用global变量和通过将类分配给变量来找到其他解决方案.我可以知道为什么我无法检索我使用其他方法设置相同的类属性的原因吗?另外,你能帮我用run方法解释实际过程......提前谢谢.

这是我尝试的示例代码:

import unittest
class Unit(unittest.TestCase):
    def test_i(self):
        self.b=20
    def test_j(self):
        print self.b


suite=unittest.TestLoader().loadTestsFromTestCase(Unit)
unittest.TextTestRunner(verbosity=2).run(suite)
test_i (__main__.Unit) ... ok
test_j (__main__.Unit) ... ERROR

======================================================================
ERROR: test_j (__main__.Unit)
----------------------------------------------------------------------
Traceback (most recent call last):
File "<pyshell#52>", line 5, in test_j
AttributeError: 'Unit' object has no attribute 'b'

----------------------------------------------------------------------
Ran 2 tests in 0.078s

FAILED (errors=1)
<unittest.runner.TextTestResult run=2 errors=1 failures=0>


    #The two ways which I solved...
    #1.By Assinging …
Run Code Online (Sandbox Code Playgroud)

python unit-testing python-3.x python-unittest

3
推荐指数
1
解决办法
2160
查看次数