Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python unittest的奇怪问题_Python_Unit Testing - Fatal编程技术网

python unittest的奇怪问题

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

下面的超级简单单元测试在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/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