通过Python版本制作`nosetests`脚本选择文件夹

时间:2013-09-14 17:38:57

标签: python python-3.x nose

我以前在我的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,但我不愿意。

3 个答案:

答案 0 :(得分:6)

[nosetests]
where=source_py2/test_python_toolbox
py3where=source_py3/test_python_toolbox

答案 1 :(得分: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)

为每个拥有它的测试模块。丑陋的方面是你必须在每个测试用例中注入这个代码。

答案 2 :(得分:1)

tox可以通过多个环境规范和changedir选项(只是覆盖每个Python版本)来实现。