Python单元测试从命令行执行超过预期
问题描述:
我有一个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
因为有很多测试用例并且只用一个命令就可以运行。
那么,有什么会导致运行测试倍数?我的跑步者功能有任何错误?
答
我发现了这个问题。 已经从test_
开始的测试用例由unittest本身和我的跑步者运行。我将它改为另一个前缀,并且解决了!
答
调用python -m unittest discover
将在TestClassAddBasket.py
中运行您的测试。
似乎manuelTextRunner(TestClassAddBasket)
在TestClassAddBasket.py
中被调用并再次运行您的测试代码。
除非您需要运行测试用例手册,否则我会将其删除。
'if __name__ =='__main__':' - 你的电话。 – sobolevn
已经,我试过了。来自-m unittest命令,它并不代表该行,因为它不是__main__ –