Python BDD機能テストからBUSOWを使用してコードカバレッジデータを取得するにはどうすればよいですか。
-
21-12-2019 - |
質問
この特定の質問に対する答えを見ていない(テストカバレッジツールTeaSave Test Framework の場合は、Googleの検索結果が十分な答えを生み出していません。したがって...
どのようにコードカバレッジレポートがBexaveから入手できますか?私はBDD方法論を使用しているPython開発者がいないと信じるのは難しいと思います。また、BDDを使用しているPython開発者が機能テストからコードカバレッジ統計がないと信じることがさらに難しいと思います。Coverage.pyを使用してコードカバレッジを生成するために動作するのに使われますか?
解決
BASOWの使い方がわかりませんが、 cucumber はおそらくほぼ類似していると思います。それで、私はあなたがカバレッジで行動することができるべきだと思います。ファイルに含めるファイルを指定する必要があります。(キュウリで使用しました)。このが役立つ可能性があるかどうかを確認してください。
これがあなたの質問に答えてください:)
# .coveragerc to control coverage.py
[run]
parallel = True
# if you want to include tests append tests/*
include =
src/*
*src*
[paths]
source =
src/
*/src
tests =
tests/
*/tests
. 他のヒント
Davidの上記の提案からのフォロー中。
テストするコードをAppディレクトリにあると仮定して、 .coveragerc file:
に次のものを追加します。[run]
source=app/
.
端子から:
coverage run $(which behave);
.
通常としてカバレッジレポートまたはカバレッジHTMLを使用できます。 .coveragerc ファイルにApp Dirを指定しないと、CoverageはあなたのBehogaveインストールのローカルのすべてのPythonライブラリをテストします。
Bakaveは、JUnitカバレッジデータを生成し、カバレッジパッケージを複数のテスト実行からまとめることができます。 CI環境で閲覧または自動的に公開できるHTMLレポートを作成します。
ここで私が現在行われたカバレッジの作成、結合、および報告に現在使用されているステートメント:
cd your/repo/tests # <-- Make sure you're inside your tests dir!
rm -rf behave-reports/*
behave --junit --junit-directory behave-reports
coverage combine
coverage html
.
rm -rf behave-reports/*
は、Behave-Reports / Directory内のすべてを強制的に削除して、新鮮なカバレッジレポートまたはまったく何もありません(私の場合はCIの障害を生じさせる)。テストをローカルで実行した場合、テスト結果を追加してコミットしていないように、.gitignore
ファイルにエントリを追加し(または同等)ことをお勧めします。
--junit
を使用したRuning SurpeSury --junit-directory
フラグは、そのジュニティ出力がディスク上のそのジュニットデータを書き込む場所を指示する。
coverage combine
の実行はすべてのコードカバレッジを食べ、それを単一のカバレッジファイルにまとめます。
最後に、coverage html
は、結合されたすべてのカバレッジデータを含むかわいいHTMLレポートを生成します。
もう1つのオプションで、Coverageを使用して動作を実行するメインスクリプト:
coverage run /path/to/lib/python2.7/site-packages/behave/__main__.py
.
もちろん、含めるソースファイルを.coveragerc
で指定します。