2015-07-20 88 views
1

我有我的Django项目与Travis-CI和Coveralls联系在一起。

我面临的问题是,当我的数据是从发布到特拉维斯工作服,工作服似乎考虑到所有除了Django框架和站点包文件到自己的应用程序文件:

enter image description here

我真正关心的唯一覆盖数据是我的应用程序文件 - 是否有任何方法只显示我写的内容的覆盖范围?这样的事情:

enter image description here

我在Travis上的命令好像只能运行我自己的应用测试,这看起来像是正确的行为。这里是我的.travis.yml文件:从coveralls.io中移除测试?

language: python 
python: 
    - "3.4" 
# command to install dependencies 
install: 
    - pip install -r requirements.txt --use-mirrors 
    - pip install coveralls coverage 
# command to run tests 
script: 
    - coverage run manage.py test 
# addons 
addons: 
    postgresql: "9.4" 
after_success: 
    coveralls 

这里是路径的文件,我不希望被列入工作服的一个示例:/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/django/utils/lru_cache.py

好像有东西做特拉维斯的virtualenv ...

+0

你试过'... manage.py测试myapp'吗? – jonrsharpe

+0

@jonrsharpe是的。我检查过Travis版本的输出,'manage.py test'和'manage.py test myapp'正在运行相同数量的测试。 – dcgoss

回答

1

the coverage documentation

当运行你的代码中,coverage run命令默认会 衡量所有的代码,除非它是Python标准的一部分图书馆。

Django不在标准库中,所以你需要指定它应该被排除,或者只应该包含你自己的代码。在您的script中,您可以设置source(s)进行覆盖。例如,与标准myapp

script: 
    - coverage run --source=myapp manage.py test myapp 
       #^set one or more comma-separated sources to cover 

the Django docs on coverage integration你也可以使用--source='.'覆盖项目的根目录中的所有文件。

+0

真棒!得到它的工作。结束使用source =。像你说的。谢谢! :) – dcgoss