coverage.pyを使用してコードカバレッジレポートを生成するsetuptoolsのコマンドを作成する最適な方法は何ですか?setuptoolsコマンド(coverage.py)
1
A
答えて
0
coverage
実行可能ファイルへのサブプロセス呼び出しを使用する簡単な解決方法があります。私はあなたがテストカバレッジを測定するコードを含むmycoolpackage
と呼ばれるPythonパッケージを持っていて、あなたはパッケージを持っています。これは、テストスイートを返すsuite
関数を公開しています。
まず、run-tests.py
ファイルを作成します。
import os.path, sys
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
import unittest
from mytests import suite
unittest.main(defaultTest='suite')
はその後setup.py
で次のコマンドを作成し、setup()
機能のcmdclass
引数に追加します。 coverage.py
は、あなたがサブプロセスの呼び出しを使用せずにこれを実現できるようになるAPIを持っていることを
class run_coverage(Command):
description = "Generate a test coverage report."
user_options = []
def initialize_options(self): pass
def finalize_options(self): pass
def run(self):
import subprocess
subprocess.call(['coverage', 'run', '--source=mycoolpackage', 'run-tests.py'])
subprocess.call(['coverage', 'html'])
は注意してください。
2
あなたが探しているものはExtending Distutils capabilities through extensionsで、私がリンクしているドキュメントに記載されています。基本的な考え方は、コマンドと実行のためのエントリポイントを与えることであり、エントリポイントはコンポーネントベースの用語集のいくつかに従うべきです。誰かが既に成功しているので(Adding Test Code Coverage Analysis to a Python Project's setup Command)、彼のプロジェクトのためにそれを統合しているので、あなたの目的のためにそれを採用することができるはずです。
関連する問題
- 1. coverage.py:除外するファイル
- 2. Odooのcoverage.pyを使用
- 3. なぜcoverage.pyはFlaskのrunserverコマンドを適切に測定しませんか?
- 4. カスタムオプションでsetuptools installコマンドを実行するとRuntimeError
- 5. IronPythonとsetuptools/ez_install
- 6. setuptoolsのエラーパッケージ
- 7. ディレクトリにcoverage.pyを実行するには?
- 8. coverage.pyのステートメントは何ですか?
- 9. python setuptoolsのインストールCentOS
- 10. :setuptoolsのはUnicodeEncodeErrorを
- 11. setuptoolsのないsetup.pyを
- 12. setup.py build(setuptools)のdata_filesのフォルダ
- 13. python setuptools: "No module named version"
- 14. PythonをダウングレードするSetuptools
- 15. インストールエラー(--site-dirs)python 2.6とsetuptools
- 16. Archlinuxピップとsetuptoolsのは
- 17. distutils.core vs setuptools with C++ extension
- 18. setuptoolsのインストール方法は?
- 19. coverage.pyからファイルを除外する方法は?
- 20. Python coverage.py APIで省略フラグを使用する
- 21. Coverage.pyはインポートとクラス定義コードを無視します
- 22. setuptools pythonをアンインストールする方法
- 23. setuptoolsでpruneとrecursive-excludeの違いは?
- 24. setuptoolsでデフォルトdistフォルダを変更
- 25. インポートsetuptoolsが失敗します
- 26. python setuptoolsとeasy_install numpyの質問
- 27. PythonでCコードをコンパイルするsetuptools 'bdist_deb'
- 28. easy_installを-U setuptoolsの管理者権限
- 29. setuptoolsをインストールパラメータで使用する
- 30. Pip install:エラー "モジュール名が 'setuptools'でない"
カバレッジコマンドを追加することは、setuptoolsの内部テストランナーを使用する場合にのみ有効です。これで、カバレッジコマンドを実行するだけでよいのです。 –