Python Unittest-类变量

时间:2016-12-19 15:10:27

标签: python python-2.7 unit-testing python-2.6 class-variables

我希望有人不介意解释这里发生的事情。我试图运行一个已经确认使用python 2.7工作的python单元测试。但是,当试图在运行python 2.6的机器上运行相同的测试时,我收到一个我无法弄清楚的错误。这是一个正在发生的事情的例子

import re, string, os, subprocess, unittest
import MERCH_FUNCTIONS


class merchTests(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        self._merchFileString=open("test_file.txt",'r').read()
        self._merchFileList=self._merchFileString.split("\n") #convert string to list

    def test_stuff(self):
         #print list
         print(self._merchFileList) 
if __name__ == '__main__':
    unittest.main()

出于某种原因,如果我使用python 2.7运行此代码,它会成功运行测试,并打印出self._merchFileList列表。

但是,当使用python 2.6运行相同的代码时,我收到以下错误:

======================================================================
ERROR: test_stuff (__main__.merchTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "MERCH_Test_Case.py", line 14, in test_stuff
    print(self._merchFileList)
AttributeError: 'merchTests' object has no attribute '_merchFileList'

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)

我不能为我的生活弄清楚这里发生了什么。我尝试了几个不同的事情但没有成功。如果有人愿意解释这里出了什么问题,我将非常感激。

提前谢谢。

1 个答案:

答案 0 :(得分:6)

setUpClassintroduced in python2.7。因此,当您使用早期版本(例如,Python 2.6)运行它时,它不会被自动调用。