在我的试用测试用例中,我想从源代码树中运行脚本。试用会更改工作目录,因此简单的相对路径不起作用。实际上,Trial的临时目录位于源代码树内,但假设情况似乎并不理想。即,我能做到:
def source_file(p):
return os.path.join('..', p)
有更好的方法吗?
答案 0 :(得分:2)
如果您想在测试旁边找到一个文件并将其作为脚本运行,您可以这样做:
from twisted.python.modules import getModule
script = getModule(__name__).filePath.path
# ...
reactor.spawnProcess(..., script, ...)
您也可以使用它来支持将代码存储在zip文件中,尽管使用Python调用它会变得有点困难。您是否考虑过使用python -m
?