我的课程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运行突然有效。
有什么想法吗?
答案 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