1

我第一次尝试在 PyDev 中使用 PyUnit。我创建了一个unittest.py模块。当我这样做时run as -> Python unit-test,我收到以下错误:

查找文件...完成。
导入测试模块...完成。

==================================================== =====================
回溯(最近一次通话最后):
  文件“/Applications/eclipse/plugins/org.python.pydev_2.7.5.2013052819/pysrc/runfiles.py”,第 163 行,在
    主要的()
  文件“/Applications/eclipse/plugins/org.python.pydev_2.7.5.2013052819/pysrc/runfiles.py”,第 77 行,在 main
    pydev_runfiles.main(配置)
  文件“/Applications/eclipse/plugins/org.python.pydev_2.7.5.2013052819/pysrc/pydev_runfiles.py”,第 761 行,在 main
    PydevTestRunner(配置).run_tests()
  文件“/Applications/eclipse/plugins/org.python.pydev_2.7.5.2013052819/pysrc/pydev_runfiles.py”,第 747 行,在 run_tests
    runner.run(test_suite)
  运行中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/runner.py”,第 158 行
    结果.printErrors()
  文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/runner.py”,第 108 行,在 printErrors
    self.printErrorList('ERROR', self.errors)
  文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/runner.py”,第 114 行,在 printErrorList
    self.stream.writeln("%s: %s" % (flavour,self.getDescription(test)))
  文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/runner.py”,第 46 行,在 getDescription
    return '\n'.join((str(test), doc_first_line))
  文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py”,第 1060 行,在 __str__
    self._testFunc.__name__)
AttributeError:“str”对象没有属性“__name__”

我的单元测试只是 PyDev 生成的默认值:

import unittest


class Test(unittest.TestCase):


    def setUp(self):
        pass


    def tearDown(self):
        pass


    def testName(self):
        pass
        print "hello test"


if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()

我希望它打印出来hello test。我错过了什么?

4

1 回答 1

4

好的,在遇到类似问题几分钟后,我意识到了您的问题。您需要重命名文件。将其命名为 unittest.py 以外的任何名称。这会导致编译器混淆您的模块和您正在导入的 unittest 模块。

其次,即使您更改了文件名,也可能会遇到同样的错误。这是由于未从项目中删除 unittest.pyc 文件引起的。重命名文件,删除之前生成的 unittest.pyc 文件,测试应该可以正常运行了。

于 2013-07-21T03:13:31.583 回答