2016-10-03 23 views
1

私は次のpyunitテストケースコードを使用して、関数の結果を収集しています(TrueまたはFalse)。しかし、assertTrueの "no attribute"エラーが発生しています。ここには何が欠けていますか?AttributeError:TestSwitchインスタンスに 'assertTrue'という属性がありません

私はpython 2.7.8とPyUnit-1.4.1-py2.7のpyunitバージョンを使用しています。

私のMacからEclipse(pydevプラグイン)を実行しても、同じコードが正常に動作します。これを私のLinuxボックスに持って行ったときだけ、以下のエラーが出ます。だから私には、パッケージの非互換性の問題のように見えます。

import json 
import unittest 

class TestSwitch(unittest.TestCase): 

    def testFunction(self): 
     self.assertTrue(True, "test case failed") 

以下はテストスイートクラスです。

import unittest 
from mysample import TestSwitch 

# Create an instance of each test case. 
testCase = TestSwitch('testFunction') 

# Add test cases to the test suite. 
testSuite = unittest.TestSuite() 
testSuite.addTest(testCase) 

# Execute the test suite. 
testRunner = unittest.TextTestRunner(verbosity=2) 
testRunner.run(testSuite) 

以下のエラーが発生します。

bash-3.2$ python mysuite.py 
testFunction (mysample.TestSwitch) ... ERROR 

====================================================================== 
ERROR: testFunction (mysample.TestSwitch) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "workspace/pyunit/mysample.py", line 7, in testFunction 
    self.assertTrue(True, "test case failed") 
AttributeError: TestSwitch instance has no attribute 'assertTrue' 
---------------------------------------------------------------------- 
Ran 1 tests in 0.000s 

FAILED (errors=1) 
bash-3.2$  
+0

あなたはテストクラスのクラス定義を表示できますか? 'TestSwitch'は' TestCase'から継承していますか? – elethan

+0

提案されたより完全なコードで質問を更新しました。 – AnilJ

+0

Linuxマシンの最小限の例で問題を再現できますか?たとえば、スイッチを使わずに単体テストの最も基本的なもので、単に 'self.assertTrue(1)'やそれに類するものです。 – Evert

答えて

0

は、今の私は、ブール値と比較して「assertEqual」を使用することで、この問題の回避策を考え出したのだが、動作します。私はなぜ 'assertTrue'なのか、それについて 'assertFalse'が問題を抱えているのか分かりません。私はパッケージのバージョンなどを変更しませんでした。

回避コードは次のとおりです。

17  def testFunction(self): 
18   res = True 
19   self.assertEqual(res, True, 'test case failed') 
関連する問題