我有一个项目,其中包含python2和python3代码(它是客户端/服务器的东西;服务器是python3,但有python2和python3客户端)。我正在用鼻子来处理单元测试。目录布局(目前)基本上像
client2
tests
client3
tests
server
tests
有没有办法设置或使用nose,以便使用python2运行节点只获得python2测试,类似python3。例如,像:
client2
tests2
client3
tests3
server
tests3
......有一些合适的鼻子论点。我用-m选项搞砸了但是无法到达任何地方。
答案 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时,它只会运行client3
和server
测试。在python2上运行时,它只会运行client2
个测试。
另外,请查看this question and answers替代方案。