首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自命令行的Python unittest执行的次数超过预期

来自命令行的Python unittest执行的次数超过预期
EN

Stack Overflow用户
提问于 2015-11-08 18:53:02
回答 2查看 237关注 0票数 2

我有一个Python测试用例。使用以下命令从命令行运行测试时,测试结果是正确的。它显示了两个测试用例:

代码语言:javascript
复制
python TestClassAddBasket.py

但是,如果使用以下命令运行:

代码语言:javascript
复制
python -m unittest discover

它运行2次,显示4个测试用例结果

TestClassAddBasket.py

代码语言:javascript
复制
# -*- coding: UTF-8 -*-
import unittest


class TestClassAddBasket(unittest.TestCase):

    def test_item_one(self):
        .....

    def test_item_two(self):
        ........
        ..........


manuelTextRunner(TestClassAddBasket)

我的manuel文本运行器函数是:

代码语言:javascript
复制
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函数有错误吗?

EN

回答 2

Stack Overflow用户

发布于 2017-01-07 19:31:58

我找到问题了。已经从test_开始的测试用例由unittest本身和我的运行器运行。我把它改成了另一个前缀,它就解决了!

票数 0
EN

Stack Overflow用户

发布于 2017-01-07 19:42:40

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

似乎在TestClassAddBasket.py中调用了manuelTextRunner(TestClassAddBasket),并再次运行了您的测试代码。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33593143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档