2

我有一個Python測試用例。使用以下命令從命令行運行測試時,測試結果存在正確。它示出了2測試用例:Python單元測試從命令行執行超過預期

python TestClassAddBasket.py 

但是,如果與下面的以下命令運行:

python -m unittest discover 

它運行2次,並顯示4測試用例reult

TestClassAddBasket.py

# -*- coding: UTF-8 -*- 
import unittest 


class TestClassAddBasket(unittest.TestCase): 

    def test_item_one(self): 
     ..... 

    def test_item_two(self): 
     ........ 
     .......... 


manuelTextRunner(TestClassAddBasket) 

我的manuel文字轉輪功能是:

def manuelTextRunner(self, TestClassName): 
    testnames = unittest.getTestCaseNames(TestClassName,'test_') 
    suite = unittest.TestSuite() 
    suite.addTests([TestClassName(methodName) for methodName in testnames]) 
    unittest.TextTestRunner(verbosity=2).run(suite) 

爲什麼我使用python -m unittest discover因爲有很多測試用例並且只用一個命令就可以運行。

那麼,有什麼會導致運行測試倍數?我的跑步者功能有任何錯誤?

+0

'if __name__ =='__main__':' - 你的電話。 – sobolevn

+0

已經,我試過了。來自-m unittest命令,它並不代表該行,因爲它不是__main__ –

回答

0

我發現了這個問題。 已經從test_開始的測試用例由unittest本身和我的跑步者運行。我將它改爲另一個前綴,並且解決了!

0

調用python -m unittest discover將在TestClassAddBasket.py中運行您的測試。

似乎manuelTextRunner(TestClassAddBasket)TestClassAddBasket.py中被調用並再次運行您的測試代碼。

除非您需要運行測試用例手冊,否則我會將其刪除。