2
我希望有人不介意解釋這裏發生了什麼。我試圖運行一個已被證實使用python 2.7工作的python unittest。但是,當試圖在運行python 2.6的機器上運行這個相同的測試時,我得到了一個我無法弄清楚的錯誤。這是發生了什麼事Python單元測試類變量
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運行相同的代碼時,我收到以下錯誤(S):
======================================================================
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)
我不能爲我的生活弄清楚是怎麼回事。我嘗試了幾件不同的事情,但沒有成功。如果有人願意解釋發生了什麼問題,我將不勝感激。
預先感謝您。
嘎,謝謝先生!解決方案使用「SetUp」而不是「SetUpClass」。 –
@Dr。你熟悉SetUp和SetUpClass的區別嗎? –
我不完全清楚它。一個是子類方法,另一個是類方法,對嗎?你可以解釋嗎? –