python unittest的奇怪问题
下面的超级简单单元测试在python2.7下运行良好,但出现以下错误 2.6中没有方法runTest(),这是为什么 谢谢! 杨python unittest的奇怪问题,python,unit-testing,Python,Unit Testing,下面的超级简单单元测试在python2.7下运行良好,但出现以下错误 2.6中没有方法runTest(),这是为什么 谢谢! 杨 myuser@myhost/tmp$python26-m单元测试a.AA 回溯(最近一次呼叫最后一次): 文件“/usr/lib64/python2.6/runpy.py”,第122行,在运行模块中 “\uuuuu main\uuuuuuuuuuuuuuuuuuuuuuuuu”,fname,loader,pkg\u name) 文件“/usr/lib64/python
myuser@myhost/tmp$python26-m单元测试a.AA
回溯(最近一次呼叫最后一次):
文件“/usr/lib64/python2.6/runpy.py”,第122行,在运行模块中
“\uuuuu main\uuuuuuuuuuuuuuuuuuuuuuuuu”,fname,loader,pkg\u name)
文件“/usr/lib64/python2.6/runpy.py”,第34行,在运行代码中
run_globals中的exec代码
文件“/usr/lib64/python2.6/unittest.py”,第874行,在
主(模块=无)
文件“/usr/lib64/python2.6/unittest.py”,第815行,在__
self.parseArgs(argv)
parseArgs中的文件“/usr/lib64/python2.6/unittest.py”,第842行
self.createTests()
createTests中的文件“/usr/lib64/python2.6/unittest.py”,第848行
自我保护模块)
loadTestsFromNames中的文件“/usr/lib64/python2.6/unittest.py”,第612行
suites=[self.loadTestsFromName(name,module)表示名称中的名称]
loadTestsFromName中的文件“/usr/lib64/python2.6/unittest.py”,第597行
test=obj()
文件“/usr/lib64/python2.6/unittest.py”,第215行,在__
(self.\uuuu类\uuuuu,方法名)
ValueError:在:runTest中没有此类测试方法
myuser@myhost/tmp$vi/年
myuser@myhost/tmp$cat a.py
导入单元测试
AA类(unittest.TestCase):
通过
您必须覆盖类中的函数
或者名为test_某物的函数,unittest将其理解为测试函数。当您想要执行大量测试时,这非常有用,因为您可以提供setUp和tearDown,这是在每次测试之前调用的函数,用于创建测试中需要的类或内容。它在2.7中工作而在2.6中不工作的原因是正确的 上面说 在版本2.7中更改:在早期版本中,只能运行单个测试方法,而不能运行模块或类 您正在尝试运行整个类中的所有测试
AA
。在2.6中不能这样做。您可以在代码底部调用unittest.main()
,并通过pythona.py
从命令行运行脚本
$ cat a.py
import unittest
class AA(unittest.TestCase):
def test_something(self):
self.assertEqual(1, 1)
unittest.main()
$ python -V
Python 2.6.1
$ python a.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
您可能还想保护对
unittest.main()
的调用,以确保只有从命令行运行此文件时才会调用它。谢谢,但是文档中的第一个简单示例为什么没有runTest()覆盖?因为它实现了名为test\u的函数,我添加了一个test_blah()测试,仍然是相同的导入unittest类AA(unittest.TestCase):def test_blah(self):assertEquals(1,1,'siml')否,仍然是相同的错误;我甚至添加了一个suite()方法,同样的错误
$ cat a.py
import unittest
class AA(unittest.TestCase):
def test_something(self):
self.assertEqual(1, 1)
unittest.main()
$ python -V
Python 2.6.1
$ python a.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK