4

我有一个班级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.pyFoo.pysys.path

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

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

有任何想法吗?

4

2 回答 2

2

你需要检查你的 python 路径;Foo.Foo在你的模块之前发现了一些其他的Foo

或者,在try/ except TypeErrorsuite 中,打印出问题模块的路径:

def setUp(self):
    try:
        self.foo = Foo()
    except TypeError:
        # What module Foo is this?
        print Foo.__file__
        raise
于 2012-07-31T08:37:06.307 回答
1

我使用相同的命名约定,我遇到了同样的问题。我通过调用 self.foo = Foo.Foo() 实例化对象 Foo 来解决

于 2018-01-29T09:46:36.067 回答