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中被调用并再次运行您的测试代码。

除非您需要运行测试用例手册,否则我会将其删除。