【发布时间】:2014-12-12 22:50:55
【问题描述】:
我是 Python、Python 命令行和 PyDev 的新手。 Fedora 20,Python 2.7.5,因为它出现在这个发行版上。我无法编写单元测试。已尝试导入 unittest 和 unittest2(如此处)。
from unittest2 import TestCase, main
def IsOdd( n ):
return n % 2 == 1
class IsOddTests( TestCase ):
def testOne( self ):
self.failUnless( IsOdd( 1 ) )
def testTwo( self ):
self.failIf( IsOdd( 2 ) )
def main():
main()
if __name__ == '__main__':
main()
每次导入都有其问题。无论是从 Eclipse 中的 PyDev 控制台还是在命令行 shell 都会发生这种情况。我查看了 /usr/lib/python2.7/site-packages/* 下的内容,发现缺少的符号(TestCase 和 unit),但这对当前案例没有帮助。
/usr/bin/python 2.7.5 (default, Nov 3 2014, 14:26:24)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-7)]
PyDev console: starting.
>>> from unittest2 import TestCase, main
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/unittest2/__init__.py", line 40, in <module>
from unittest2.collector import collector
File "/usr/lib/python2.7/site-packages/unittest2/collector.py", line 3, in <module>
from unittest2.loader import defaultTestLoader
File "/usr/lib/python2.7/site-packages/unittest2/loader.py", line 8, in <module>
import unittest
File "/home/russ/dev/python-workspace/max/src/unittest.py", line 11, in <module>
from unittest2 import TestCase, main
File "/usr/lib/python2.7/site-packages/unittest2/main.py", line 7, in <module>
from unittest2 import loader, runner
File "/usr/lib/python2.7/site-packages/unittest2/runner.py", line 7, in <module>
from unittest2 import result
File "/usr/lib/python2.7/site-packages/unittest2/result.py", line 26, in <module>
class TestResult(unittest.TestResult):
AttributeError: 'module' object has no attribute 'TestResult'
>>> from unittest import TestCase, main
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/home/russ/dev/python-workspace/max/src/unittest.py", line 11, in <module>
from unittest2 import TestCase, main
File "/usr/lib/python2.7/site-packages/unittest2/__init__.py", line 40, in <module>
from unittest2.collector import collector
File "/usr/lib/python2.7/site-packages/unittest2/collector.py", line 3, in <module>
from unittest2.loader import defaultTestLoader
File "/usr/lib/python2.7/site-packages/unittest2/loader.py", line 12, in <module>
from unittest2 import case, suite
File "/usr/lib/python2.7/site-packages/unittest2/case.py", line 10, in <module>
from unittest2 import result
File "/usr/lib/python2.7/site-packages/unittest2/result.py", line 9, in <module>
from unittest2 import util
ImportError: cannot import name util
【问题讨论】:
-
如果您是 python 新手,请尽可能使用 python 3。
unittest2是 python 3 中的unittest包。 -
谢谢,不过,我的工作必须在 python 2 中。