問題タブ [pytest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - py.testはフィクスチャをどこでどのように見つけるか
py.testはどこでどのようにフィクスチャを探しますか?同じフォルダ内の2つのファイルに同じコードがあります。conftest.pyを削除すると、test_conf.pyを実行しているcmdoptが見つかりません(これも同じフォルダーにあります。sonoftest.pyが検索されないのはなぜですか?
conftest.pyのコンテンツ
sonoftest.pyの内容
ドキュメントは言う
http://pytest.org/latest/fixture.html#fixture-function
- pytestは、test_プレフィックスが原因でtest_ehloを検出します。テスト関数には、smtpという名前の関数引数が必要です。一致するフィクスチャ関数は、smtpという名前のフィクスチャマーク付き関数を探すことによって検出されます。
- smtp()は、インスタンスを作成するために呼び出されます。
- test_ehlo()が呼び出され、テスト関数の最後の行で失敗します。
python - doctest ファイルで py.test フィクスチャを使用することは可能ですか?
プロジェクトで py.test を使用し、ほとんどのテスト ケースでフィクスチャを使用します。しかし、doctest ファイルでフィクスチャを使用する可能性はありません。
いくつかのコード スニペットで例を挙げると、次のような conftest.py にブラウザー フィクスチャがあります。
ファイル test_browser.txt で次のように使用します。
しかし、フィクスチャを doctest ファイルに入れる方法がわかりません。これはpy.testでまったく可能ですか?
coverage.py - すべてではなく単一の環境で pytest カバレッジを実行するように tox を構成するにはどうすればよいですか?
私は、さまざまなバージョンの Python 用に複数の環境を持つ複雑な tox.ini 構成を持っています。
デフォルトのpythonインタープリターでのみカバレッジを実行するようにtoxに指示する方法を知りたいです。
問題の 1 つは、デフォルトの Python 環境がプラットフォームごとに異なる可能性があることです。
tox -e py25,py26,docs
-e引数がpythonの検出されたバージョンである場所を呼び出すラッパースクリプトがあります。
望ましい動作: 単一の環境のカバレッジで pytest を実行します (これは jenkins と統合して実行することになっています)。
python - マークされたテストを収集しないことはできますか?
現在、テストをマークしてから、引数を使用して実行する (または実行しない) ことができ-m
ます。ただし、すべてのテストが最初に収集され、その後に選択が解除されます
以下の例では、まだ 8 つすべてが収集されていますが、4 つが実行され、4 つが選択解除されています。
質問:マークされた/マークされていないテストをまったく収集しないことは可能ですか?
問題は次のとおりです。
1)データベースにすでにいくつかのアイテム( my deviceなど)とそれが持っているコードがある場合、いくつかのテストを使用しています:
デバイステストを明示的に除外してテストを実行します。ただし、まだ実行中py.test -m "not device"
であるため、収集中にエラーが発生します。device = Devices.get_device('t400-alex-win7')
time_demanding
2)約 400 の生成されたテストがあるため、一部のテストはマークされています。これらのテストの生成にも時間がかかります。これらのテストは一般的なテストから除外しますが、それらは生成および収集されてから選択解除されます <- しばらくお待ちください。
(1)の問題の解決策があることは知っています-pytest.fixturesを使用してテストに渡しますが、 PyDevが提供するオートコンプリートが本当に好きです。
timedemanding
クラスは次のとおりです。
ご覧のとおり、pytest がヒット@pytest.mark.parametrize
するまでに、それが Class with にあることをすでに認識しているはず@pytest.mark.timedemanding
です。ただし、コレクションは引き続き発生します。
python - py.testでテストを収集するにはどうすればよいですか?
py.testを使用してテストを収集しようとしましたが、収集しません。
コマンドラインで追加のオプションを提供する必要がありますか?
Py.testは私の.pyファイルのディレクトリで実行されました。他に要件はありますか?
私のテストは正しく名前が付けられていますか?私のコードでは、クラスに「Test-」を使用し、メソッドに「test_」を使用しました。
ターミナルからの結果:
テスト中の私のコード:
python - pytestフィクスチャに渡されたパラメータを変数として渡すことはできますか?
2つの簡単なテスト設定があり、それらを1つのフィクスチャにグループ化しようとしており、テスト関数がフィクスチャに「params」を渡してほしいと思っています。
これが私の質問を説明するための工夫された例です。私が次のpytestフィクスチャを持っているとしましょう:
test_madeup
上記のパラメータが関数への入力として渡されるようにすることはできますか?したがって、次のようなものです。
もちろん、上記は機能しません。実際のケースはもう少し複雑ですが、関数params=['param1','param2']
からフィクスチャにを渡すことができるかどうかを知りたいだけです。test_madeup
python - py.test は、「オブジェクト」から継承されていないテストを収集しません
テストに必要なさまざまな設定でBaseクラスを作成しようとしています。すべてのテストをこのBaseクラスから継承したいと考えています。ランナーとしてpy.testを使用します。
しかし、そうしようとすると、 py.test はBaseクラスから継承されたこれらのテストを収集しないため、実行されません。ドキュメントに有用な情報が見つかりませんでした。
誰かが以前にそのような問題に直面したのではないでしょうか? 何か案は?
ありがとう。
PS テストがオブジェクトから継承されると、すべて正常に動作します。Py.test はそれらを見て正しく実行します。
コードの例:
私の基本クラス:
私のテストクラス:
出力:
python - tox テストを実行するように pycharm / intellij のアイデアを構成する方法
tox テストを実行するように pycharm/intellij のアイデアを構成することは可能ですか? 別々の py 環境で、さまざまな python バージョンに対してコードをテストしたいと考えています。私はそれを構成しようとしていましたが、これまでのところ、単一の py.test サポートしか構成できませんでした。
python - pycharm/pydev での pytest 事後分析例外のデバッグ
ブレークポイントを事前に構成せずに、組み込みの PyCharm の Pytest ランナーをデバッガーと一緒に使用したいと思います。
問題は、テストの例外が Pytest によってキャッチされるため、PyCharm の事後分析デバッガーが例外を処理できないことです。
ブレークポイントの使用が機能することはわかっていますが、テストを 2 回実行したくありません。
Unittest でこれを行う方法を見つけました。このようなものが Pytest に存在するかどうかを知りたいです。
pydev - Py.Testは、PyDev / Eclipseを使用して、エラーのあるテストをサイレントにスキップしますか?
私は、Py.Testを使用して、作業中のコードで単体テストを自動化することを検討してきました。私は次の動作を発見しました:私が構築したテストにエラーがある場合(そうでなければインタープリターがバーフする原因になります)、テストフレームワークはテストを完全に無視しているように見えます。
より多くのテストを実装するにつれて、「このテストにエラーがあり、実行されなかった」を「このテストに合格した」と間違えるのではないかと心配しています。理想的には、Eclipseのボタンを押して、構文エラーがある場合は単体テストを失敗させたいと思います。「構文エラーのないコードを書いてみませんか?」以外に、私が見逃している別の解決策はありますか?
または、Py.Testに、検出されたテストファイルと実行されたテストファイルを通知させる方法はありますか?
セットアップはPyDev2.7.1とEclipse4.2で、Python2.7.3とPyTest2.3.4を使用します。