2013-05-21 58 views
0

你好,我有一個測試模塊,如「test.py」下的以下內容:Python的單元測試報告通過測試

class TestBasic(unittest.TestCase): 
    def setUp(self): 
     # set up in here 

class TestA(TestBasic): 
    def test_one(self): 
     self.assertEqual(1,1) 

    def test_two(self): 
     self.assertEqual(2,1) 

if __name__ == "__main__": 
    unittest.main() 

而這個作品不錯,但我需要一種方法來打印的測試通過,例如我可以打印輸出到控制檯:

test_one: PASSED 
test_two: FAILED 

現在的扭曲,我可以在self.assertEqual(右後添加一個print語句),這將是通過測試,我可以只打印出來,但我需要運行來自不同模塊的測試,比方說我有這樣的「test_reporter.py」:

import test 
suite = unittest.TestLoader().loadTestsFromModule(test) 
results = unittest.TextTestRunner(verbosity=0).run(suite) 

在這一點上的結果是當我建立一個報告。

所以請任何建議,歡迎

謝謝!

+4

變化冗長2,你會看到每一種情況下 –

+0

輸出,爲什麼不公佈它作爲一個答案? – PepperoniPizza

回答

4

就像Corey's comment提到的那樣,如果你設置了verbosity=2 unittest將打印每次測試運行的結果。

results = unittest.TextTestRunner(verbosity=2).run(suite) 

如果你想多一點靈活性 - 你可能會因爲你正在創建的套房和使用測試運行 - 我建議你看一看Twisted Trial。它擴展了Python的unittest模塊,並提供了更多的斷言和報告功能。

編寫測試將完全相同(除了子類twisted.trial.unittest.TestCase與python的unittest),所以你的工作流程不會改變。您仍然可以使用您的TestLoader,但您可以選擇更多TestReporter http://twistedmatrix.com/documents/11.1.0/api/twisted.trial.reporter.html

例如,默認TestReporter是TreeReporter其下面的輸出返回: enter image description here

+0

你好,我試過你的解決方案,工作很不錯,問題是通過測試不顯示與[確定]和失敗的測試顯示與[失敗]任何想法? – PepperoniPizza

+0

如果你想讓輸出看起來像截圖,你需要安裝[Twisted Trial](http://twistedmatrix.com/trac/wiki/TwistedTrial),然後使用'trial test_file.py'而不是'python -m unittest' –

+0

是的,我做到了,我錯過了從twisted.trial.unittest.TestCase子類,它現在的作品,謝謝 – PepperoniPizza