首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用烧瓶建立coverage.py

用烧瓶建立coverage.py
EN

Stack Overflow用户
提问于 2014-05-19 19:07:22
回答 2查看 4.5K关注 0票数 6

我很难让coverage.py和我的烧瓶应用程序一起工作。

我正试图通过子进程说明来设置它:http://nedbatchelder.com/code/coverage/subprocess.html

在我的create_app()函数(它是一个应用程序工厂)中,我有以下内容:

代码语言:javascript
运行
复制
if settings.FLASK_ENV == 'TEST':
    coverage.process_startup()

在我的测试套件中,我有以下内容:

代码语言:javascript
运行
复制
# Need to add the 'COVERAGE_PROCESS_START' environment variable for subprocesses
if os.getenv('COVERAGE'):
    test_env['COVERAGE_PROCESS_START'] = 'tests/.coveragerc'

test_env['FLASK_ENV'] = 'TEST'

test_process = subprocess.Popen(["gunicorn", "run_server:app", '--log-level=warning', '-w 1', '-b {host}:{port}'.format(host='127.0.0.1',port=port())],
                                env=test_env)

当我的测试结束时我会..。

代码语言:javascript
运行
复制
    coverage.save()
    coverage.combine()
    percent_covered = coverage.html_report(directory='covhtml')
    print "Percent Covered: {}".format(percent_covered)
    coverage.stop()

但是唉..。报道报告似乎并没有合并。

注意:在调用联合之前,如果我看到一个类似于ls -alt的目录.

-rw-r--r-- .coverage.Jonathans-MacBook-Pro-3.local.49352.501916 -rw-r--r-- .coverage.Jonathans-MacBook-Pro-3.local.49352.931352

为了完整起见,我的.coveragerc是:[run] parallel = True

会喜欢在正确的方向点--谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-20 13:53:07

让它发挥作用--多亏了@NedBat的一些指导。

问题是野牛正在产生更多的子过程--以及那些没有被监控的子过程。

为了解决这个问题,我需要利用站点模块的sitepackage.py特性。公平地说,这已经被http://nedbatchelder.com/code/coverage/subprocess.html记录在案了--但我只是做错了。

您需要创建该sitepackage.py文件并将其放在您的site-packages文件夹中。然后,在环境中运行的任何进程(或子进程)将在启动进程之前执行该文件。

票数 2
EN

Stack Overflow用户

发布于 2014-05-20 06:39:08

如果您使用鼻子进行测试,那么它非常简单。只管跑:

代码语言:javascript
运行
复制
nosetests --with-coverage --cover-package=yourpackagename--cover-html --cover-erase
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23745370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档