問題タブ [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.

0 投票する
1 に答える
746 参照

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からのカバレッジを無視するメカニズムで問題ありません。xfailxfail

0 投票する
3 に答える
9287 参照

python - pytest でのインポート ファイルの不一致

パッケージに「test」という名前のファイルがあり、pytest を実行するとエラーが発生しました。

ファイルから「test」を削除すると正常に動作しますが、残念ながら変更できません。

問題は、pytest にこのファイルを無視するように指示する方法です。