私は、いくつかのコマンドライン引数に基づいて異なる環境でセレンテストを実行するためにpytestを取得しようとしています。しかし、それはこのエラーを投げ続ける:セットアップでコマンドライン引数を理解するためにpytestを取得できません
TypeError: setup_class() takes exactly 2 arguments (1 given)
setup_class
は2つの引数を取りますが、host
が渡されていないことを理解しているようです。ここでsetup_class
のためのコードは次のとおりです。
def pytest_addoption(parser):
parser.addoption("--host", action="store", default='local',
help="specify the host to run tests with. local|stage")
@pytest.fixture(scope='class')
def host(request):
return request.config.option.host
奇妙である何host
は、機能によって見られている(私はtest_functionとパスを作る場合ということです:
def setup_class(cls, host):
cls.host = host
そして、ここではconftest.pyファイルがありますパラメータとしてホスト、それはちょうどそれを得る)、それは働いていないsetup
フィクスチャだけです。
私は周りを見回したとこれを見つけ、それが、pytest - use funcargs inside setup_moduleが動作していないようです(と、それは2.3以来時代遅れされています。
はは、誰もが私が間違ってやっている知っていますか?py.test 2.3.2を使用して。
おかげ
【こちら】(http://pytest.org/latest/fixture.html#working-with-a-module-shared-fixture)それは、フィクスチャの名前が再び、SMTPであるとすることができます」と言います任意のテストまたはセットアップ機能で入力パラメータとして名前smtpを表示することでその結果にアクセスできます」。だから私はセットアップなどでそれを使用できますか?そして 'autouse'と' uses'はすべてのテストがそのコードを実行させるようにしています。 – Nacht
私はあなたに答えをあげます。あなたが私の特定の答えに答えなかったとしても、あなたは私に回避策としてのアイデアを与えました。これは奇妙なことですが、ドキュメントはあなたがそれを行うことができると言いますが、そうではないようです。とにかく、ありがとう。 – Nacht
あなたが正しいです、ドキュメントは誤解を招きます。または実際には、私はちょうど "フィクスチャ関数"と "セットアップ機能"を置き換える修正をアップロードしました。ごめんなさい! – hpk42