python单元测试遇到的问题

zhouyang209117 2015-06-27 08:16:24
大家好,我用notepad++写python,想把功能代码和测试代码分开。目录结构是这样的:根目录是Grammer,Grammer下面有2个文件夹,一个是src, 一个是test. 在src中有2个文件,一个是__init__.py,内容为空,表示src是包,一个是clac.py,内容为

#encoding: utf-8
def add(a, b):
return a + b

def sub(a, b):
return a - b


在test文件夹中有2个文件,一个是__init__.py,内容为空,表示test是包,一个是clac_test.py,内容为
#encoding: utf-8
import unittest
from src import calc

class mytest(unittest.TestCase):

##初始化工作
def setUp(self):
pass

#退出清理工作
def tearDown(self):
pass

#具体的测试用例,一定要以test开头
def testAdd(self):
self.assertEqual(calc.add(1, 2), 3, 'test sum fail')

def testSub(self):
self.assertEqual(calc.sub(3, 2), 1, 'test sub fail')


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


现在在命令行中,在Grammer目录下运行python test\calc_test.py,报错误:
Traceback (most recent call last):
File "test\calc_test.py", line 3, in <module>
from src import calc
ImportError: No module named src

如果是把calc_test.py移动到Grammer目录下,运行python calc_test.py,测试结果正常.

我想像java那样把测试代码和功能代码分开,把calc_test.py放在test目录中,该怎么运行呢?
谢谢大家。
...全文
222 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouyang209117 2015-06-27
  • 打赏
  • 举报
回复
引用 3 楼 panghuhu250 的回复:

/tmp/grammer/ python -m unittest test.calc_test
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

或者安装nose.

/tmp/grammer/ nosetests              
..
----------------------------------------------------------------------
Ran 2 tests in 0.005s

OK

---------------------------------------------------------- 说错误, 说真正错误, 拷错误信息说真正错误, 贴代码, 贴完整代码, 用语法高亮贴完整代码.
谢谢大神,能不能推荐一些python入门和进阶的书或者教程.
zerup 2015-06-27
  • 打赏
  • 举报
回复
如果路径不再改变了,试试from ../src import
panghuhu250 2015-06-27
  • 打赏
  • 举报
回复

/tmp/grammer/ python -m unittest test.calc_test
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

或者安装nose.

/tmp/grammer/ nosetests              
..
----------------------------------------------------------------------
Ran 2 tests in 0.005s

OK

---------------------------------------------------------- 说错误, 说真正错误, 拷错误信息说真正错误, 贴代码, 贴完整代码, 用语法高亮贴完整代码.
sprawling 2015-06-27
  • 打赏
  • 举报
回复
应该在前面加个
import sys;
sys.path.append("E:\\py_code\\csdn\\Grammer\\src")
路径使用绝对路径.
sprawling 2015-06-27
  • 打赏
  • 举报
回复
你用的相对路径有问题吧.

37,721

社区成员

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

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