次のようなプロジェクトディレクトリがあります。
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=***
これはpytest自体の制限です。 docs を見てください。
Pytestは、ツールの起動時に、深くネストされたサブディレクトリでconftest.pyファイルを検出しないことに注意してください。通常、conftest.pyファイルを最上位のテストまたはプロジェクトのルートディレクトリに保存することをお勧めします。
1つの解決策は、外部プラグインを作成するか、オプションをルート近くのconftest
ファイルに移動することです。