2013-07-21 2 views
1

PyDev에서 처음으로 PyUnit을 사용하려고합니다. unittest.py 모듈을 만들었습니다. 내가 run as -> Python unit-test을했을 때, 나는 다음과 같은 오류가 발생했습니다 :PyDev에서 PyUnit 오류

 
Finding files... done. 
Importing test modules ... done. 

====================================================================== 
Traceback (most recent call last): 
    File "/Applications/eclipse/plugins/org.python.pydev_2.7.5.2013052819/pysrc/runfiles.py", line 163, in 
    main() 
    File "/Applications/eclipse/plugins/org.python.pydev_2.7.5.2013052819/pysrc/runfiles.py", line 77, in main 
    pydev_runfiles.main(configuration) 
    File "/Applications/eclipse/plugins/org.python.pydev_2.7.5.2013052819/pysrc/pydev_runfiles.py", line 761, in main 
    PydevTestRunner(configuration).run_tests() 
    File "/Applications/eclipse/plugins/org.python.pydev_2.7.5.2013052819/pysrc/pydev_runfiles.py", line 747, in run_tests 
    runner.run(test_suite) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/runner.py", line 158, in run 
    result.printErrors() 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/runner.py", line 108, in printErrors 
    self.printErrorList('ERROR', self.errors) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/runner.py", line 114, in printErrorList 
    self.stream.writeln("%s: %s" % (flavour,self.getDescription(test))) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/runner.py", line 46, in getDescription 
    return '\n'.join((str(test), doc_first_line)) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py", line 1060, in __str__ 
    self._testFunc.__name__) 
AttributeError: 'str' object has no attribute '__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

좋아, 몇 분 동안 비슷한 문제가 발생한 후에 문제가 발생했습니다. 파일의 이름을 바꿔야합니다. unittest.py가 아닌 다른 이름을 지정하십시오. 이로 인해 컴파일러가 모듈과 가져 오는 unittest 모듈을 혼동하게 만듭니다.

둘째, 파일 이름을 변경 한 후에도 동일한 오류가 발생할 수 있습니다. 이것은 프로젝트에서 제거되지 않는 unittest.pyc 파일 때문에 발생합니다. 파일의 이름을 변경하고 이전에 생성 된 unittest.pyc 파일을 삭제하면 테스트가 제대로 실행됩니다.

+1

감사합니다. 정확히 알고 싶습니다. 그 사실을 알아내는 데 정말 오랜 시간이 걸렸을 것입니다. 나는 당신의 대답에 부딪 치는 담당자의 포인트를 갖고 싶습니다. 나는 다른 사람들이 저를 위해 그것을 할 것이라는 점을 희망한다! –

관련 문제