2015-07-20 89 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