2016-10-03 99 views
1

我有一個以下pyunit測試用例代碼,其中我收集函數的結果(True或False)並使用它來驅動我的斷言。但是,我得到assertTrue的「no attribute」錯誤。這裏缺少什麼?AttributeError:TestSwitch實例沒有屬性'assertTrue'

我使用python 2.7.8和pyunit版本的PyUnit-1.4.1-py2.7。

從我的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') 
相關問題