1

次のテスト ディレクトリ構造があり、それぞれに独自の conftest.py があります。

    tests/api
    tests/api/newapi
    tests/sanity

conftest.py では、pytest_addoption に test_option と同じオプション エントリがあります。

parser.addoption("--test_option", dest="test_option", type="string", help="test_option")

tests/api/newapi で py.test を実行すると、次のエラーが発生します。

optparse.OptionConflictError: オプション --test_option: 競合するオプション文字列: --test_option

ただし、tests/api または tests または tests/sanity で py.test を実行すると問題なく動作します。親ディレクトリに同じオプション名がある場合、新しいオプション名を考え出す必要があるのは仕様によるものですか?

問題のオプションはテストで同じ目的を果たすため、命名規則を同じに保つことができることを望んでいました。その意図は、テストが開始されたディレクトリに応じて、テストの詳細レベルを変えることです。

4

1 に答える 1

1

pytest_addoption を介してオプションを定義する 1 つの tests/conftest.py が必要だと思います。すべての conftest.py ファイルが考慮されるため、どこからでもアクセスできるようになります (つまり、tests/newapi/conftest.py とオプション値を使用します)。

于 2012-08-02T17:27:16.700 に答える