我目前正在尝试使为 Python2 编写的模块与 Python3.2 兼容。
我首先确保所有代码都可以自动转换2to3
并添加到 setup.py 中:
use_2to3 = True,
到目前为止,一切正常。
现在,我想测试转换后的文件。
编写测试以便它们可以在没有2to3
. 我的文件夹结构是:
# ls /path/to/mymodule
setup.py
mymodule/
tests/
build/
在我的 setup.py 中,我添加了
test_suite = "tests",
现在我执行
rm -rf build/
python3 setup.py build
python3 setup.py test
为了测试我自动转换的代码。但它失败了,因为测试仍然在mymodule
目录上运行:
File "/path/to/mymodule/mymodule/main.py", line 35
logger.info(u'Scanning {path}'.format(path=self.path))
^
SyntaxError: invalid syntax
[This Syntax error is in MODULE code, not in TEST code.]
[I expect the path to be: /path/to/mymodule/build/lib/mymodule/main.py]
在我build/
的是正确转换的文件。如果分发正确转换它们,为什么不为转换后的文件执行测试?
我错过了什么吗?我已经检查了 setuptools/distribute 的文档以查找缺少的参数。我不想将我的测试包含在模块中,因为有几个资源文件仅用于测试会占用不必要的空间。
=> 在 python3 中运行时,我可以配置我的 setup.py 以运行不同文件夹的测试吗?