在 /test 文件夹下使用 py.test 运行时出现“TypeError: 'module' object is not callable”

Los*_*_DM 5 python pytest

我有一个班级Foo住在Src/Projects/SomeProject/Foo.py

我有一个班级FooTest(unittest.TestCase)住在:

Src/Projects/SomeProject/tests/FooTest.py
Run Code Online (Sandbox Code Playgroud)

当我使用 pytest 运行它时(我只需在 Src 中输入“py.test”即可运行所有测试),我得到:

 def setUp(self):
     self.foo = Foo()
     TypeError: 'module' object is not callable
Run Code Online (Sandbox Code Playgroud)

(我已经from Foo import FooFooTest.py并且Foo.py正在sys.path.

但是当我用 python 运行它时:python Src/Projects/SomeProject/tests/FooTest.py一切正常。)

另外,如果我只是将 FooTest.py 移动到,Src/Projects/SomeProject那么使用 py.test 运行就会突然起作用。

有任何想法吗?

Mar*_*ers 2

你需要检查你的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
Run Code Online (Sandbox Code Playgroud)