到目前为止,我们使用它来获取方法调用者的模块:
frame=inspect.currentframe().f_back
module=inspect.getmodule(frame.f_code)
除py.test TestCases外,它运行良好。
Py.test将文件名作为模块名返回。
我们的测试代码布局:
foomodule/lib/examplecode.py
foomodule/tests/test_examplecode.py
如果在examplecode.py
中调用,则结果为'foomodule'。但在test_examplecode.py
中调用它会返回'test_examplecode'。
答案 0 :(得分:0)
py.test确实可以使用被测模块的AST,因此它可能会改变这个值(错误地?)。如果是这样,这可能是一个错误。
你能否举一个测试失败的例子?例如。澄清检查代码是作为测试函数运行还是被测试的代码?
您是否还可以指出是否存在__init__.py
个文件,因为这可能有助于明确软件包和模块的内容。
说过以这种方式使用堆栈和检查通常是不受欢迎的。