7

我曾经在我的setup.cfg文件中有这个:

[nosetests]
where=test_python_toolbox

但是现在我通过提供两个并行代码库来支持 Python 2 和 Python 3,一个在source_py2文件夹中,一个在source_py3文件夹中。setup.py知道如何检查 Python 版本并选择正确的版本。问题是,我不知道如何nosetests在 repo 根目录中调用时,选择正确的文件夹。

我可以有这个:

[nosetests]
where=source_py2/test_python_toolbox

但是测试只适用于 Python 2。我希望它们适用于两个版本。

我可以带着旗帜发射nosetests,但我宁愿不这样做。

4

3 回答 3

6
[nosetests]
where=source_py2/test_python_toolbox
py3where=source_py3/test_python_toolbox
于 2013-09-18T18:52:21.083 回答
4

而不是使用where不推荐使用的,使用tests并指定多个测试:

[nosetests]
tests=source_py2/test_python_toolbox, source_py3/test_python_toolbox

这将运行两组测试。对于每个测试,在最顶部,在语言特定功能到位之前,添加运行测试的选择标准。例如,对于source_py3测试添加:

import sys
from unittest import SkipTest

if sys.version_info < (3, 0):
    raise SkipTest("must use python 3.0 or greater")

使用 python2.6 鼻子你会得到:

S
----------------------------------------------------------------------
Ran 1 test in 0.001s

OK (SKIP=1)

对于每个拥有它的测试模块。丑陋的方面是您必须在每个测试用例中注入此代码。

于 2013-09-16T22:43:40.403 回答
1

tox可以通过多个环境规范和changedir选项来做到这一点(只需覆盖每个 Python 版本)。

于 2013-09-14T18:12:43.687 回答