web-dev-qa-db-ja.com

py.test:エラー:認識されない引数

次のようなプロジェクトディレクトリがあります。

Projects/
....this_project/
........this_project/
............__init__.py
............code.py
............tests/
................conftest.py
................test_1.py
................test_2.py

次のコードをconftest.pyに入れることで、コマンドラインオプション(--PALLADIUM_CONFIG)を追加しました

def pytest_addoption(parser):
    parser.addoption("--PALLADIUM_CONFIG", action="store")

@pytest.fixture
def PALLADIUM_CONFIG(request):
    return request.config.getoption("--PALLADIUM_CONFIG")

そして奇妙なのは:

私がcdした場合

Projects/this_project/this_project

または

Projects/this_project/this_project/tests

そして走る

py.test --PALLADIUM_CONFIG=***

うまくいくなら

しかし、例えば私が自分自身を見つけた場合

Projects/this_project

または

Projects

その後、pytestは私にエラーを与えます

py.test: error: unrecognized arguments: --PALLADIUM_CONFIG=***
16
Hello lad

これはpytest自体の制限です。 docs を見てください。

Pytestは、ツールの起動時に、深くネストされたサブディレクトリでconftest.pyファイルを検出しないことに注意してください。通常、conftest.pyファイルを最上位のテストまたはプロジェクトのルートディレクトリに保存することをお勧めします。

1つの解決策は、外部プラグインを作成するか、オプションをルート近くのconftestファイルに移動することです。

11
Bruno Oliveira