什麼是創建setuptools命令的最佳方法,它使用coverage.py生成代碼覆蓋率報告?setuptools命令coverage.py
1
A
回答
0
這是一個簡單的解決方案,它使用coverage
可執行文件的子進程調用。我假設你有一個名爲mycoolpackage
的Python包,其中包含你想測量測試覆蓋的代碼,並且你有一個mytests
包,它揭示了返回測試套件的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
說法。
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'])
注意coverage.py
確實有一個API,它可以讓你做到這一點,而無需使用一個子進程調用。
2
你在找什麼是Extending Distutils capabilities through extensions,它在我已經鏈接的文檔中涵蓋。基本思想是給出命令和執行點,入口點應遵循setuptools基於組件的一些術語。我認爲,在這裏你是幸運的,因爲有人已經成功地嘗試過(Adding Test Code Coverage Analysis to a Python Project's setup Command),將他整合到他的項目中,你應該能夠爲你的目的採用它。
相關問題
- 1. Python setuptools開發命令:「No module named ...」
- 2. 爲什麼coverage.py不能正確測量Flask的runserver命令?
- 3. 爲什麼coverage.py不能正確測量Django的runserver命令?
- 4. Setuptools,在一行中明確地分隔多個命令調用
- 5. 如何指定由setuptools創建的命令腳本的shebang行
- 6. 如何在setuptools設置中添加命令鉤子?
- 7. 如何更改setuptools構建過程(msvc)中的鏈接命令?
- 8. coverage.py:排除文件
- 9. 如何使用coverage.py
- 10. 命令行命令命令
- 11. 在Odoo中使用coverage.py
- 12. coverage.py和功能測試
- 13. 安裝setuptools後Kivy Buildozer - 「No module named setuptools」
- 14. IronPython和setuptools/ez_install
- 15. setuptools easy_install mac error
- 16. ImportError:No module named setuptools
- 17. curl命令wp_remote_request命令
- 18. hbase命令與hadoop命令
- 19. MFC命令窗口命令
- 20. 擊:如果(命令)|(命令)
- 21. 命令複製命令promt
- 22. Linux命令 - 管道命令
- 23. 命令行修改命令
- 24. 命令demoing我的命令
- 25. Python:argparse子命令子命令?
- 26. Redis中的命令命令
- 27. 在Python中使用omit標誌coverage.py API
- 28. Coverage.py警告:未收集任何數據
- 29. 在MacOSX上編譯coverage.py時出錯
- 30. coverage.py中的聲明是什麼?
如果您使用setuptools的內部testrunner,那麼添加coverage命令只會非常有用。有了這個,你只需運行coverage命令即可。 – 2013-01-31 15:15:29