【发布时间】:2015-02-07 16:44:50
【问题描述】:
我目前正在尝试使为 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
为了测试我自动转换的代码。
但它失败了,因为测试仍然在mymoduledirectory 上运行:
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 的文档以查找缺少的参数。 我不想将我的测试包含在模块中,因为有几个资源文件仅用于测试会占用不必要的空间。
=> 我可以将 setup.py 配置为在 python3 中运行时为不同的文件夹运行测试吗?
【问题讨论】:
标签: python-3.x setuptools python-unittest distribute python-2to3