問題タブ [pytest-cov]
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 - カバレッジが成功したテストのみをカウントし、xfailing テストを無視するようにする
問題が修正される前に失敗したテストケースを追加できるように、マーカーを使用して失敗するが失敗してはならないpytest.mark.xfail
テストをマークするプロジェクトがいくつかあります。これらのテストをスキップしたくありません。なぜなら、私が何かを行ったために合格し始めた場合は、そのことを通知して、マーカーを削除して回帰を回避できるようにしたいからです。xfail
問題は、xfail
テストが失敗するまで実際に実行されるため、失敗に至るまでのヒット行は、合格していないテストの一部であっても「カバー」としてカウントされ、実際のコードの量について誤解を招くメトリックが得られることです。動作するようにテストされています。これの最小限の例は次のとおりです。
pkg.py
test_pkg.py
を実行python -m pytest --cov=pkg
すると、次のようになります。
ご覧のとおり、5 行すべてがカバーされていますが、3 行目と 4 行目はxfail
テスト中にヒットしただけです。
tox
私が今これを処理する方法は、 のようなものを実行するようにセットアップすることですpytest -m "not xfail" --cov && pytest -m xfail
が、少し面倒であることに加えて、それはxfail
マークが付いたものを除外するだけです。つまり、条件付きの xfails も、条件が満たされます。
失敗したテストからのカバレッジをカウントする方法とカウントしない方法はありますcoverage
か? または、条件が満たされた場合にのみ条件付きテストを無視するテストpytest
からのカバレッジを無視するメカニズムで問題ありません。xfail
xfail
python - pytest でのインポート ファイルの不一致
パッケージに「test」という名前のファイルがあり、pytest を実行するとエラーが発生しました。
ファイルから「test」を削除すると正常に動作しますが、残念ながら変更できません。
問題は、pytest にこのファイルを無視するように指示する方法です。