2017-05-30 5 views
0

私は単体テスト(py.testを使って)をより汎用的にしようとしていますが、私はプログラム的にテストを生成しています。 - 私は引数とテストの終わりに保持する不変量をエクスポートする関数を持っています。py.testパラメータpytest.param`が見つかりません?

私は物事をきれいに保つために、私もテストのためのIDを渡したいと思います。 (?)pytestのための公式を見ドキュメント私が気付か:different ways to parametrizeを表示する例で

import pytest 

from datetime import datetime, timedelta 

# ... 

@pytest.mark.parametrize("a,b,expected", [ 
    pytest.param(datetime(2001, 12, 12), datetime(2001, 12, 11), 
       timedelta(1), id='forward'), 
    pytest.param(datetime(2001, 12, 11), datetime(2001, 12, 12), 
       timedelta(-1), id='backward'), 
]) 
def test_timedistance_v3(a, b, expected): 
    diff = a - b 
    assert diff == expected 

上記の方法はまさに私がしたいことです(引数と引数のそれぞれにIDを付けてください)。私の関数はpytest.paramオブジェクトのリストを出力します。

E AttributeError: module 'pytest' has no attribute 'param'

は、ドキュメントが間違っている:しかし、私は(pytest.orgからまたはフル1)上記のスニペットを実行したときに、私は次のようなエラー(もpycharm IDEのハイライトこの構文エラー)を与えていますか?私は環境が正しく設定されていない場所で何かを見つけられませんか?

答えて

1

pytest.paramは、recently been implementedとなります。それを使用するにはpy.testバージョン3.1.0以降を使用していることを確認してください。

pip install -U "pytest>=3.1.0" 
関連する問題