7

私は自分のsetup.cfgファイルにこれを持っていました:

[nosetests]
where=test_python_toolbox

source_py2しかし今では、2 つの並列コードベース (1 つはフォルダー内、もう 1 つはフォルダー内) を提供することで、Python 2 と Python 3 をサポートしていsource_py3ます。setup.pyPython のバージョンを確認して正しいバージョンを選択する方法を知っています。nosetests問題は、レポルートで呼び出されたときに正しいフォルダーを選択する方法がわからないことです。

私はこれを持つことができます:

[nosetests]
where=source_py2/test_python_toolbox

しかし、テストはPython 2でしか機能しません。両方のバージョンで機能することを望みます。

nosetestsフラグを立てて発射することもできますが、そうしないほうがよいでしょう。

4

3 に答える 3

4

wherewhich is deprecated を使用する代わりに、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 に答える