我有一个Python测试用例。使用以下命令从命令行运行测试时,测试结果是正确的。它显示了两个测试用例:
python TestClassAddBasket.py但是,如果使用以下命令运行:
python -m unittest discover它运行2次,显示4个测试用例结果
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,因为有很多测试用例,都可以用一个命令来运行。
那么,是什么导致多次运行测试呢?我的runner函数有错误吗?
发布于 2017-01-07 19:31:58
我找到问题了。已经从test_开始的测试用例由unittest本身和我的运行器运行。我把它改成了另一个前缀,它就解决了!
发布于 2017-01-07 19:42:40
调用python -m unittest discover将在TestClassAddBasket.py中运行您的测试。
似乎在TestClassAddBasket.py中调用了manuelTextRunner(TestClassAddBasket),并再次运行了您的测试代码。
除非您需要运行该测试用例手册,否则我会将其删除。
https://stackoverflow.com/questions/33593143
复制相似问题