" TypeError:' module'对象不可调用"在/ test文件夹下运行py.test时

时间:2012-07-31 08:27:41

标签: python pytest

我的课程Foo位于Src/Projects/SomeProject/Foo.py

我的课程FooTest(unittest.TestCase)住在:

Src/Projects/SomeProject/tests/FooTest.py

当我用pytest运行它时(我只是在Src中键入'py.test'来运行所有测试),我得到:

 def setUp(self):
     self.foo = Foo()
     TypeError: 'module' object is not callable

from Foo import Foo FooTest.py Foo.py sys.path python Src/Projects/SomeProject/tests/FooTest.py位于Src/Projects/SomeProject

但是当我用python运行它时:{{1}}一切正常。)

另外,如果我只是将FooTest.py移动到{{1}},那么使用py.test运行突然有效。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你需要检查你的python路径;在您的模块Foo.Foo之前找到了其他Foo

或者,在try / except TypeError套件中,打印出违规模块的路径:

def setUp(self):
    try:
        self.foo = Foo()
    except TypeError:
        # What module Foo is this?
        print Foo.__file__
        raise

答案 1 :(得分:0)

我使用相同的命名约定,我遇到了同样的问题。 我通过调用self.foo = Foo.Foo()

来实例化对象Foo