2016-12-19 33 views
2

私は誰かがここで何が起こっているのか気にしないことを望んでいました。私はPython 2.7を使用して動作することが確認されているPythonのunittestを実行しようとしています。しかし、Python 2.6を実行しているマシンでこの同じテストを実行しようとすると、私が理解できないエラーが発生しています。ここで私はそれが成功したテストを実行するのpython 2.7を使用してこのコードを実行する場合はいくつかの理由Python Unittestクラスの変数

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() 

を何が起こっているかの一例であり、リスト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) 

私は私の人生はここで何が起こっているかを把握することはできませんのために。私は成功しなかったいくつかの異なることを試しました。誰かがここで間違っていることを説明するほど親切であれば、私はそれを高く評価します。

ありがとうございます。

答えて

6

setUpClassintroduced in python2.7であった。したがって、以前のバージョン(Python 2.6など)で実行すると自動的に呼び出されることはありません。

+1

ガー、ありがとうございます!解決策は、 "SetUpClass"の代わりに "SetUp"を使用しています。 –

+0

@Dr。あなたはSetUpとSetUpClassの違いに精通していますか? –

+0

私はそれについて完全に明確ではありません。 1つはサブクラスメソッドであり、もう1つはクラスメソッドです。説明できますか? –

関連する問題