栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pycharm unittest.main 单元测试问题记录

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pycharm unittest.main 单元测试问题记录

使用版本pycharm2020.1.1 x64

在学习《python 编程从入门到实践》的第11章的时候,按照书中的代码进行实践测试结果发现了一些无法理解的bug,解决方法是比较简单,不过底层原理不太明白,今天就记录下等待以后水平提高了再来解答。

下面展示相关代码:

待测试代码 test_check_name.py

1、待测试代码1

#生成整洁的姓名
def get_formatted_name(first,last):
    full_mame=first+' '+last
    return full_mame.title()

2、待测试代码2 test_check_name.py

#生成整洁的姓名
def get_formatted_name(first,middle,last):
    full_mame=first+' '+middle+' '+last
    return full_mame.title()
单元测试代码 tset_check.py
import unittest
from test_check_name import get_formatted_name
#测试test_check_names
class NamesTestCase(unittest.TestCase):

    #能够正确的处理像 Janis Joplin
    def test_first_last_name(self):
        formatted_name=get_formatted_name('janis','joplin')
        self.assertEqual(formatted_name,'Janis Joplin')

unittest.main()
问题描述

当第一个待测试代码在pycharm中执行的时候,显示的是正常的这也是

而当待测试代码变成第二个的时候,原本正常应该是要发生报错的可结果是显示如上图所示的显示正确的结果。这是十分异常的,不应该出现的问题。
在cmd中又是显示正常运行的

之后试过很多方法比如重新更换文件,修改设置,但都没有用。

解决方法

经过在网上的交流搜索后也只是保证可以运行。那就是将 unittest.main() 删除或者修改成 unittest.main。
网上的解释是:pycharm 默认是内置unittest的,所以不用加unittest.main()。它可以自动识别 unittest单元测试,自动运行。
不过令人疑惑的是,为什么不能直接兼容 unittest.main()呢?毕竟这也是正常的编程方法,不知道为什么当初没有考虑到。

于此记录!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012350.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号