资讯专栏INFORMATION COLUMN

关于PyCharm中Python测试不是run_testname 而是run_unittest_in

MiracleWong / 1155人阅读

摘要:自动生成测试文件,再添加一些内容,对照下图那个是干嘛的,有什么用,系统自动生成,我暂时还不知道我也是看了别人的博客论坛后自己总结的,有很多原理性的东西我并不太了解,但是我会继续努力学习

本人是python初学者
看的课本是《Python编程从入门到实践》【美】Eric Matthes 著;袁国忠 译,中国工信出版集团,人民邮电出版社出版
课本指定编辑器是Geany,用了一小段时间后,朋友推荐PyCharm,所以就用的PyCharm编辑python
在课本的“测试函数”这一章中,PyCharm无法显示书中所示的结果,所以就了解了一下
PS:在Geany中是完全再现书中的结果的

要测试的方法:name_function.py中的get_formatted_name()方法:

书中编写的方法如图:

print("**** "+__name__)

这个是为了看__name__的值,记得要注释掉,否则别的py文件调用这个py文件的时候会运行
末尾和书里的有点不一样

unittest.main()

if __name__=="__main__":
    unittest.main()

都可以,但是最好还是第二种,为了避免别的 .py文件引用该文件后会运行该文件的

uniittestmain()方法,

看不懂的下面就是解释
这样的代码,结果不一定 跟书里的一样,为什么呢?
这要先从__name__这个属性开始说:
比如一个python文件,命名为a.py
当从编辑器中直接运行a.py或者从命令行中直接运行a.py,那么a.py的__name__属性就是"__main__"
如果另外有一个b.py,从b.py中导入a.py,即b.py中import a,然后运行a.py,那么a.py的__name__属性就是a.py的文件名,也就是‘a’
详情见一位大神写的:
链接描述
python中

if __name__ == "__main__"

说完__name__,大家就要看运行该文件时实际运行的什么
为了更明白地说明问题,不要用ctrl+shift+F10运行,要点右键,出来菜单后点运行
正常来说,只有运行该py文件,结果才能跟书里的一样
拿上面图片里的例子来说,要运行test_name_function.py才能出来书里的结果,即点右键,出来菜单后点 run"test_name_function",但是实际上点了右键后出来的却是 run"Unittest in test_name_function"
这个的意思好像是在test_name_function中运行Unittest,还是在Unittest运行test_name_function,我也不太清楚,总之,好像是一个引用,这就导致__name__属性变了,不是"__main__",而是"test_name_function",导致出不来书中的结果,即下图

运行结果不是我们想要的

这个问题的关键就在于,怎样将
run"Unittest in test_name_function"
变成
run"test_name_function"
我总结了两种方法:
法一:
右击,菜单中点‘open in terminal’即在命令行中运行,出来命令行后输入

python test_name_function.py

回车运行,然后就会出现书中的结果,此时不要关闭命令行,根据结果修改.py文件,ctrl+S保存后,在命令行中直接按方向键的上键,重复上次的命令,这样就不用每次都敲入命令了
法二:
右上角,打开下拉菜单,如图

点击 Edit Configurations,编辑配置文件,打开后如下图

图中python test下的就是Unittest in test_name_function,选中,点击左上角的红色减号,去掉这一条,然后选中python test 上面的python,点击左上角的绿色加号,出来下拉菜单选python选项,然后出来的界面,点script path最右边的小方框,选中py文件路径,点OK
如图

再在最上面的Name一栏中把unnamed删掉,写入名字,最好是py文件的文件名,直接从script path中把名字那一段复制粘贴上去就行
然后点右下角apply,再点ok
退出来到test_name_function.py文件中,右击,发现是 run"test_name_function"选项,点击运行,出来结果和书上的一样

补充:
test_name_function.py是为了给name_function.py中的get_formatted_name()方法测试而创建的
到 test_name_function.py 中,光标放到 get_formatted_name 这个名字上,ctrl+shift+T,出来选项,点击“Create New Test。。。”自动生成测试文件,再添加一些内容,对照下图

PS:
那个self.fail()是干嘛的,有什么用,系统自动生成,我暂时还不知道
我也是看了别人的博客、论坛后自己总结的,有很多原理性的东西我并不太了解,但是我会继续努力学习!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41566.html

相关文章

  • 以后再有人问你selenium是什么,你就把这篇文章给他

    摘要:不同目标的自动化测试有不同的测试工具,但是任何工具都无不例外的需要编程的过程,实现源代码,也可以称之为测试脚本。 写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多。有的团队知道怎么做,做的还不够好;有的团队还正在探索和摸索怎么做,甚至还有一些多方面的技术上和非技术上的旧系统需要重构……...

    Keven 评论0 收藏0
  • 一些 PyCharm 的使用和设置建议

    摘要:显示工具栏默认并不显示工具栏,在大多数工具栏都放了最常用的操作,你可以通过主菜单显示菜单栏来显示工具栏。工具栏显示出来后你还可以通过右键定制上面的按钮,我会把一些跟相关的操作放到上面,比如,,默认它只加了和。 PyCharm是我强烈推荐的Python IDE,如果你有EDU的邮箱可以直接申请专业版授权,或者就使用社区版,功能上并没有太多缩减,日常开发也完全够用。 如果是首次安装PyCh...

    Drinkey 评论0 收藏0
  • 为什么你的python版本一团糟?因为少了这个操作

    摘要:坑人的版本的版本问题一直是个广被吐槽的黑点。这些版本的冲突在开发中十分常见,而和的版本差异又加剧了这一问题。从而避免与其他版本发生干扰。 坑人的版本 Python 的版本问题一直是个广被吐槽的黑点。以至于有人调侃说: Python 是世界上最好的两种语言! 在这里我要说明下,对于初学者来说,版本间的语法差异其实并不大。现在刚开始学 Python 的人,放心大胆地 用最新版本 即可。业内...

    ThreeWords 评论0 收藏0
  • 如何开发一个 PyCharm 插件

    摘要:今天我们说说怎么搭建环境自己写一个插件。插件工程目录结构一个典型的插件目录结构就像下图。如果成功那么在工程目录就会生成一个同名的文件。 PyCharm 是很多 Python 开发者优先选择的 IDE,功能强大,跨平台,提供免费社区版,非常良心。如果你想自己给PyCharm添加一些功能怎么办呢?有两个办法: 通过提需求实现,到 JetBrains 的 github 去提issue或者自...

    LdhAndroid 评论0 收藏0
  • Python数据科学环境:Anaconda 了解一下

    摘要:我自己印象最深的是在上安装加密和科学计算模块,折腾了很久。这个精装是面向数据科学的,同时也保留了你自己进一步改装的空间。数据科学库包环境管理工具,这几样就是的主要功能。 几乎所有的 Python 学习者都遇到过 安装 方面的问题。这些安装问题包括 Python 自身环境的安装、第三方模块的安装、不同版本的切换,以及不同平台、版本间的兼容问题 等。当你因为这些问题而卡壳,一行代码没写就已...

    shaonbean 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<