命令行中的Python unittest执行超出预期

时间:2015-11-08 10:53:02

标签: python python-2.7 selenium selenium-webdriver python-unittest

我有一个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因为,有许多测试用例并使用一个命令运行所有。

那么,什么可以导致运行测试多个?我的跑步者功能中的任何错误?

2 个答案:

答案 0 :(得分:0)

我发现了问题。 已经以test_开头的测试用例由unittest本身和我的跑步者运行。我把它改成了另一个前缀,它就解决了!!

答案 1 :(得分:0)

致电python -m unittest discover将在TestClassAddBasket.py中运行您的测试。

manuelTextRunner(TestClassAddBasket)似乎可能会调用TestClassAddBasket.py并再次运行您的测试代码。

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