关于pycharm右键只能选择run Unitiest不能直接run的解决方法

‘‘‘本人是python初学者看的课本是[python变成从入门到实践]课本指定编译器是Geany,用了一小段时间后,朋友推荐了pycharm,所以就用的pycharm编辑python,在课本的‘测试函数‘这一章中,pycharm无法显示书中所示的结果,所以就了解了一下PS:在geany中是完全再现书中的结果要测试的方法:name_function.py中的get_formatted_name()方法import unittestfrom name_function import get_formatted_name

class NamesTestCase(unittest,TestCase):    """测试name_function.py"""    def test_first_last_name(self):        """能够正确的处理像Janis Joplin这样的姓名吗?"""        formatted_name = get_formatted_name(‘janis‘,‘joplin‘)        self.assertEqual(formatted_name,‘janis joplin‘)    def test_first_last_middle_name(self):        """能够正确的处理像Wlfgang Amadeus Mozart这样的姓名吗?"""        formatted_name = get_formatted_name(‘wolfgang‘,‘mozart‘,‘amadeus‘)        self.assertEqual(formatted_name,‘Wolfgang Amadeus Mozart‘)# 这一行是为了看__name__的值print(‘*****‘+_name_)# 将unittest.main()改成下面这样if __name__ == ‘__main__‘:    unittest.main()

print(‘*****‘+_name_)这个是为了看_name_的值,记得要注释掉,否则别的py文件调用这个py文件的时候会运行,末尾和书中有点不一样,unittest.main()和if __name__ == ‘__main__‘:    unittest.main()都可以,但是最好还是第二种,为了避免别的.py文件引用该文件后会运行该文件的unittest.main()方法,看不懂的下面就是解释这样的代码,结果不一定和梳理的一样,为什么呢?这要先从_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‘有三种方法:一:unittest运行单个用例1.如上代码如果我只想运行其中一个,如test_name_function,如何运行呢?2.如果想运行哪个用例,鼠标放到对应的区域,右键就能直接运行单个用例了二:unittest运行整个脚本用例1.如果想当前的脚本上所有的用例一起执行,只需要把鼠标放到if __name__ == ‘__main__‘,这句话的后面或者下方就行了三:python直接运行模式1.以上方式只能执行单元测试框架里面的内容,是没有测试报告输出的,如果想输出测试报告,就得以非unittest模式运行,也就是python直接运行2.点右上角,点开:Edit Configurations3.展开python和python tests这两个选项,会发现刚才运行的脚本名称在python tests这个选项下,也就是pycharm这个工具自动默认为unittest姿势运行了4.解决方法,只需从这里移除掉就行,选中这个脚本,点左上角的减号5.全部移除后,点Apply应用,然后点保存6.再回到脚本页面,右键运行,就能出测试报告(鼠标一定要放在if这一行后边右键,才能看到正常显示Run‘test’)

‘‘‘
‘‘‘以上是在不明白python规则情况下的解决办法。知道今天在研究unittest自动化测试,了解到unittest单元测试的最小单位是函数,且这些函数都要以test开头,这是才潘然醒悟,可能就是下面这个原因

pycharm默认支持python自有单元测试包‘unittest‘,所以定义的函数或者类包含‘test‘或者‘TEST‘的自研就默认只能使用unittest的方式运行最后把脚本里面的test改成tst,运行成功‘‘‘

原文地址:https://www.cnblogs.com/johnny889/p/9967415.html

时间: 2024-11-09 02:34:51

关于pycharm右键只能选择run Unitiest不能直接run的解决方法的相关文章

Ubuntu Server 14.04 选择中文安装后日期乱码的解决方法

Ubuntu Server 14.04选择中文安装后,默认的/etc/default/locale会使某些中文日期乱码,执行ll和date可见. /etc/default/locale 原来内容为: LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh" LC_NUMERIC="zh_CN" LC_TIME="zh_CN" LC_MONETARY="zh_CN" LC_PAPER=&q

eclipse导入maven工程,右键没有build path和工程不能自动编译解决方法

原文链接:https://blog.csdn.net/wusunshine/article/details/52506389 eclipse导入maven工程,右键没有build path解决方法: 由于.project文件缺少 <natures>        <nature>org.eclipse.jdt.core.javanature</nature></natures> 另外如果工程不能自动编译,需要在.project文件中增加如下配置: <b

Vue 项目在其他电脑 npm run dev 运行报错的解决方法

一个 Vue 项目从一台电脑上传到 github 上之后,再另外一台电脑上 git clone .并使用 npm run dev 或 npm run start 发生以下报错的解决方法. 报错原因 缺少 node_modules 里面的依赖.在项目目录下使用 npm install然后再 npm run dev.如果在这一步当中, npm install 执行的过程中,处于一直卡顿的状态.说明网络状况不佳.建议使用 cnpm 淘宝源. 淘宝源 使用 cnpm -v 查看是否已经安装 cnpm.如

PyCharm不能使用Tab键进行整体向左缩进解决方法

使用PyCharm中,代码整体左移,可是按tab没反应,百度找到这个文章,解决了问题. 以下为原文: 这里借鉴了https://blog.csdn.net/u013088062/article/details/50148219它是将Pycharm作为Vim编辑器使用的. 我们在Ubuntu中的安装PyCharm时有可能默认安装了IdeaVim插件,由于Vim和Pycharm都是基于键盘输入的文本编辑软件,响应的IdeaVim插件的快捷键设置很可能与Pycharm的快捷键设置相冲突.在主工具栏中单

Selenuim和Python测试网站,只能打开firefox却不能打开网页的解决方法

最开始我使用的Selenium版本为2.48,Firefox版本为37,自动化打开网站的时候,可以正常打开. 后来由于Firefox的自检测更新,版本更新为47,导致版本不兼容,自动化打开网站浏览器时,始终不能正常打开网站.后来上网找解决方案,始终没解决,后来使用当时最开始下载的版本为37的Firefox的安装包,重新安装就好了. 所以,如果自动化环境搭建ok的话,一定要确保Firefox设置为不检查更新(选项-高级里边),要不然自动更新成高级版本到时候又版本不兼容了. Selenium的下载地

Hadoop在Windows系统的Eclipse下运行Cannot run program &quot;chmod&quot;: CreateProcess error=2解决办法

运行hadoop程序报错如下: Exception in thread "main" java.io.IOException: Cannot run program "chmod": CreateProcess error=2 解决方法: 只需要把cygwin的bin目录加到windows的用户环境变量中就可以了,然后需要重启eclipse

微信网页中上传文件时“只能选择SD卡中的文件”问题

需求描述:在微信网页中上传文件到我们自己的服务器,使用 input  type=file标准控件: <input type="file" name="upfile" id="upfile" > 问题来了:苹果可以顺利上传图片文件的,安卓下每次选择完图片文件之后会弹出提示"只能选择SD卡中的文件"不能上传图片.手机已经设置默认存储为SD卡. 百度搜了一个下午没有结果,微信公众平台更没有答案shiiiit. 最后在cs

C#中的ComboBox实现只能选择不能输入,且下拉框中有默认值。

下拉框有DropDownStyle这一属性,把DropDownStyle类型选为DropDownList,则下拉框只能选择不能输入了.但是这时的下拉框是没有默认值的,即使在Text属性中输入默认值,也不起作用.就要在(某某某.Designer.cs)文件中修改.这是没有修改的:this.NameTemplateBox.Cursor = System.Windows.Forms.Cursors.Default; this.NameTemplateBox.DropDownStyle = System

【问题收集·知识储备】Xcode只能选择My Mac,不能选择模拟器如何解决?

网友问题:请问打开一个应用,只能选择My Mac,不能选择模拟器如何解决? 答案: 下面将问答过程记录如下: CHENYILONG Blog 请问打开一个应用,只能选择My Mac,不能选择模拟器如何解决? 网友的问题 09:59:32 请问打开一个应用,只能选择My Mac,不能选择模拟器如何解决? 我的回答 10:00:32 你打开的是别人的应用吧 网友的问题 10:00:36 对 我的回答 10:01:06 别人的应用,有时候打开xcode是不行的 网友的问题 10:01:22 那有没有什