がpytest器具が提供するパラメータの値を保存する方法、あります:ここでpytestフィクスチャパラメータの値を取得
がconftest.pyここ
# content of conftest.py
import pytest
def pytest_addoption(parser):
parser.addoption("--parameter", action="store", default="default",
help="configuration file path")
@pytest.fixture
def param(request):
parameter = request.config.getoption("--parameter")
return parameter
の例れることは一例です - すべてが正常に動作しますが、テストの外param
の値を取得する方法がある - 例えば、いくつかのビルドでpytest機能で
# content of my_test.py
def test_parameters(param):
assert param == "yes"
はOK:pytestモジュールの
編集 - 私はモジュールを書いています
ACHIEVしたいのか詳細な説明は、それが展開し、それがテストにパラメータを提供した後、pytestで書か。
class TestApproachI:
@load_params_as_kwargs(parameters_A)
def setup_class(cls, param_1, param_2, ... , param_n):
# code of setup_class
def teardown_class(cls):
# some code
def test_01(self):
# test code
そして、この誰かが私は(いくつかの他のスクリプトで)それらのパラメータを分析すると、私は意志、私に彼のコードを実行するためにどのようなパラメータで説明した構成ファイルを、与える:誰かのテストはそのように見える場合は私の考えですpytest --parameters=path_to_serialized_python_tuple test_to_run
というコマンドでテストを実行します。このタプルには、この人のパラメータの値が正しい順序で含まれます。そして私はその男に(テストで)このデコレータを追加して、私がパラメータを提供したいすべてのテストに追加するように指示します。このデコレータは次のようになります。
class TestApproachI:
# this path_to_serialized_tuple should be provided by 'pytest --parameters=path_to_serialized_python_tuple test_to_run'
@load_params(path_to_serialized_tuple)
def setup_class(cls, param_1, param_2, ... , param_n):
# code of setup_class
def teardown_class(cls):
# some code
def test_01(self):
# test code
デコレータ関数はそのようになります。
def load_params(parameters):
def decorator(func_to_decorate):
@wraps(func_to_decorate)
def wrapper(self):
# deserialize the tuple and decorates replaces the values of test parameters
return func_to_decorate(self, *parameters)
return wrapper
return decorator
どうしたいですかテストの外で値を取得しますか? –
@Nils Werner説明が複雑ですが、私の質問を編集したい場合は –
うまくいきました。何をしようとしているのではなく、うまくいかない。 –