python测试类报错:AttributeError: module '__main__' has no attribute 'test_name_functi

伟衙内 2017-11-02 02:35:06
初学python,编写一个函数的单元测试,然后报错如下:
EE
======================================================================
ERROR: test_name_function (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute 'test_name_function'

======================================================================
ERROR: true (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute 'true'

----------------------------------------------------------------------

name_function.py:
def get_formatted_name(first,last,middle=''):
if middle:
full_name = first+" "+middle+" "+last;
else:
full_name = first+" "+last;
return full_name.title();


test_name_function.py
import unittest
from ch02.owntest.name_function import get_formatted_name
class NameTestCase(unittest.TestCase):
def test_first_last_name(self):
format_name = get_formatted_name('king','ivan')
self.assertEqual(format_name,'King Ivan')

unittest.main()


运行这个test_name_function中unittest.main()就报上面错误,有谁知道怎么回事么
...全文
2295 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
0xfffffffff 2021-02-01
  • 打赏
  • 举报
回复
看了一下源码,unittest.main不是函数,本质上是TestProgram类 这个类初始化的时候会把__main__模块动态导入,如果不加if __name__ == '__main__' ,这时候会再执行一遍__main__模块里的unittest.main()
weixin_43405434 2020-11-06
  • 打赏
  • 举报
回复
感谢你,已经解决
云少君 2020-02-07
  • 打赏
  • 举报
回复 1
unittest.main(argv=['first-arg-is-ignored'],exit=False)或unittest.main(argv=['ignored', '-v'], exit=False) 改成这个
zhuorson 2021-06-27
  • 举报
回复
@云少君 用这个方法才能解决
云少君 2020-02-07
  • 打赏
  • 举报
回复
我也遇到了,我用的网页版jupyter notebook,代码和你的差不多,错误也是这样,不知道为什么
LiangXI玖 2019-08-19
  • 打赏
  • 举报
回复
我也出现了同样的问题,我想请问楼主是如何解决这个问题的,感谢,我是用jupyter notebook 这个编辑器的
小花虫 2018-03-25
  • 打赏
  • 举报
回复
出现这个问题是因为打开的是文件夹,pycharm作为一个project来打开的,这时候执行单元测试的脚本,就会出问题。 如果是作为文件打开,就是不打开文件夹,这样进行运行是没有任何问题的。 但是为什么会出现这个问题,没有发现更深的原因,猜测是和Pycharm的Project的内部处理有一定关系的。 所以解决方法有几个 1.pycharm中单个打开文件,不要打开文件夹; 2.换一个ide,比如Notpad++ 等等
kuangbao9 2018-03-12
  • 打赏
  • 举报
回复
和你用的python版本有关吧,2的话需要 if __name__== '__main__': unittest.main() 3不需要吧
hxdtj2014 2018-03-12
  • 打赏
  • 举报
回复
换一个编辑器试试,这个例子我在pycharm里运行不能通过,但是在Geany里面可以。
伟衙内 2017-11-02
  • 打赏
  • 举报
回复 1
需要如下运行: if __name__== '__main__': unittest.main() 估计和java中需要一个main方法一样
PyTorch版的YOLOv5是轻量而高性能的实时目标检测方法。利用YOLOv5训练完自己的数据集后,如何向大众展示并提供落地的服务呢?   本课程将提供相应的解决方案,具体讲述如何使用Web应用程序框架Flask进行YOLOv5的Web应用部署。用户可通过客户端浏览器上传图片,经服务器处理后返回图片检测数据并在浏览器中绘制检测结果。   本课程的YOLOv5使用ultralytics/yolov5,在Ubuntu系统上做项目演示,并提供在Windows系统上的部署方式文档。 本项目采取前后端分离的系统架构和开发方式,减少前后端的耦合。课程包括:YOLOv5的安装、 Flask的安装、YOLOv5的检测API接口python代码、 Flask的服务程序的python代码、前端html代码、CSS代码、Javascript代码、系统部署演示、生产系统部署建议等。   本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测实战:训练自己的数据集》Ubuntu系统 https://edu.csdn.net/course/detail/30793 Windows系统 https://edu.csdn.net/course/detail/30923 《YOLOv5(PyTorch)目标检测:原理与源码解析》https://edu.csdn.net/course/detail/31428 《YOLOv5(PyTorch)目标检测实战:Flask Web部署》https://edu.csdn.net/course/detail/31087 《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》https://edu.csdn.net/course/detail/32303

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧