2

私のビルド環境は、コマンド ラインで (Ned Batchelder coverage.py ツールを使用して) カバレッジ ファイルをコンパイル、実行、および作成するように構成されています。

私はエディターとして PyDev で Eclipse を使用していますが、実用的な理由から、ビルド環境全体を Eclipse に変換することは不可能であり、便利ではありません (したがって、IDE から直接カバレッジ データを生成するように設計されています)。

PyDev は、カバレッジ情報を生成するために同じカバレッジ ツール (またはそれに非常に類似したもの) を使用しているようです。

これを行う方法について何か考えはありますか?

4

2 に答える 2

3

coverage.pyPyDevがスクリプト作成者のページからアクセスできるバージョンよりも古いバージョンをまだ使用していたとき、私はこのようなものが必要でした。

私がしたことは、PyDevが.coverageファイルを保存している場所を検出することでした。私にとっては:

 C:\Users\Admin\workspace\.metadata\.plugins\org.python.pydev.debug\.coverage

次に、別のスクリプトから新しいバージョンを手動で実行しcoverage.py、PyDevが保存する場所に.coverageファイルを保存するように指示しました。coverage.pyコマンドライン引数があるのか​​、スクリプトを使用してファイルをコピーしただけなのか思い出せません.coverageが、その後、コードカバレッジ結果ビューを開いて[カバレッジ情報の更新]をクリックすると、、PyDevは、ファイル自体を生成したかのようにデータを適切に処理します。

于 2009-01-28T22:35:08.560 に答える
3

PyDev での coverage.py の統合については (または、coverage.py を使用している場合でも) 何も知りませんが、.coverage ファイルは非常に単純です。それらはマーサルされた辞書です。

このコードはまだテストしていませんが、これを試して 2 つの .coverage ファイルを 1 つにまとめることができます。

import marshal
c1_dict = marshal.load(open(file_name_1, 'rb'))
c2_dict = marshal.load(open(file_name_2, 'rb'))
c1_dict.update(c2_dict)
marshal.dump(c1_dict, open(file_name_out, 'wb'))
于 2008-11-18T03:15:32.220 に答える