我有一个Python测试用例。使用以下命令从命令行运行测试时,测试结果正确无误。它显示了2个测试用例:
python TestClassAddBasket.py
但是,如果使用以下命令运行:
python -m unittest discover
它运行2次并显示4个testcase 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 :(得分:0)
我发现了问题。
已经以test_
开头的测试用例由unittest本身和我的跑步者运行。我把它改成了另一个前缀,它就解决了!!
答案 1 :(得分:0)
致电python -m unittest discover
将在TestClassAddBasket.py
中运行您的测试。
manuelTextRunner(TestClassAddBasket)
似乎可能会调用TestClassAddBasket.py
并再次运行您的测试代码。
除非您需要运行该测试用例手册,否则我会删除它。