使用nose来测试混合的python2和python3代码

时间:2014-04-03 12:59:03

标签: python nose

我有一个项目,其中包含python2和python3代码(它是客户端/服务器的东西;服务器是python3,但有python2和python3客户端)。我正在用鼻子来处理单元测试。目录布局(目前)基本上像

client2
    tests
client3
    tests
server
    tests

有没有办法设置或使用nose,以便使用python2运行节点只获得python2测试,类似python3。例如,像:

client2
    tests2
client3
    tests3
server
    tests3

......有一些合适的鼻子论点。我用-m选项搞砸了但是无法到达任何地方。

1 个答案:

答案 0 :(得分:0)

您似乎需要--where--py3where的组合:

  

- py3where:

     

在Python 3.x下查找此目录中的测试。功能相同   作为'where',但仅适用于在Python 3.x或更高版本下运行的情况。   请注意,如果在3.x下,则此选项完全取代任何选项   用'where'指定的目录,因此'where'选项变为   无效的。 [NOSE_PY3WHERE]

所以对你来说就是这样:

nosetests --where=. --where=client2 --py3where=. --py3where=client3 --py3where=server -v

使用带有python3的nosetests时,它只会运行client3server测试。在python2上运行时,它只会运行client2个测试。

另外,请查看this question and answers替代方案。