为什么测试覆盖率也在覆盖率报告中包含了 Flask 依赖
Why the test coverage is also including the Flask dependency in the coverage report
为什么测试覆盖率在覆盖率报告中也包含了 Flask 依赖。
我运行以下命令:coverage run tests/test_basic.py
然后 coverage report -m
这是我的报告文件:large_report_file_saved_to_pastebin
我只希望看到这个:
src/__init__.py 11 0 100%
src/appforms.py 17 0 100%
src/config.py 20 0 100%
src/controller.py 67 38 43% 35-42, 47-61, 66-75, 80, 85, 90, 95, 100, 105, 110, 115, 120
src/dataStruct.py 1 0 100%
src/model.py 111 57 49% 30-80, 88, 104, 111-118, 133-137, 159-169, 178-179, 184-187
src/timeUtils.py 41 33 20% 27-34, 52-66, 72-79, 87-90
src/utils.py 80 53 34% 21, 29, 34-43, 49-60, 71-75, 79-82, 90, 93, 98, 101, 109-114, 117-126
src/views.py 126 60 52% 41, 44-63, 75, 105-156, 172, 177, 193-194, 205-220, 227
src/visitorTracking.py 20 4 80% 37-45
tests/test_basic.py 36 0 100%
-------------------------------------------------------------------------------------------------
我只写了一些基本测试,想看看覆盖率:
import os
import sys
import unittest
import stubout
import mox
sys.path.insert(0, os.getcwd())
from src import app
from src import utils as _utils
from src.model import db
from src import timeUtils as _timeUtils
mockData = {u'city':
{
u'country': u'IN',
u'population': 0,
u'id': 1259775,
u'coord': {u'lat': 31.0292,
u'lon': 75.7842},
u'name': u'Phillaur'},
u'message': 4.410899,
u'list': [{u'clouds': 0,
u'temp': {u'min': 23.68,
u'max': 34.04,
u'eve': 32.79,
u'morn': 34.04,
u'night': 23.68,
u'day': 34.04},
u'humidity': 53,
u'pressure': 988.76,
u'weather': [{u'main': u'Clear',
u'id': 800,
u'icon': u'01d',
u'description': u'sky is clear'}],
u'dt': 1505887200,
u'speed': 0.84,
u'deg': 233}],
u'cod': u'200',
u'cnt': 1
}
class BasicTests(unittest.TestCase):
def setUp(self):
app.config['TESTING'] = True
app.config['WTF_CSRF_ENABLED'] = False
app.config['DEBUG'] = False
self.app = app.test_client()
def test_index_page(self):
self.mox = mox.Mox()
self.mox.StubOutWithMock(_utils, "getClientIp")
_utils.getClientIp().AndReturn(["127.0.0.1"])
response = self.app.get('/', follow_redirects=True)
self.addCleanup(self.mox.UnsetStubs)
self.assertEquals(response.status_code, 200)
def test_index_page_with_city(self):
self.mox = mox.Mox()
self.mox.StubOutWithMock(_utils, "getClientIp")
_utils.getClientIp().AndReturn(["127.0.0.1"])
self.mox.StubOutWithMock(_utils, "getWeatherURL")
_utils.getWeatherURL(u"Phillaur", count=u'1').AndReturn('/some/fake/URL')
self.mox.ReplayAll()
response = self.app.get('/?searchCity=Phillaur&count=1', follow_redirects=True)
self.assertEquals(response.status_code, 200)
self.mox.VerifyAll()
if __name__ == "__main__":
unittest.main()
项目目录结构如下:
|____src
| |______init__.py
| |____appforms.py
| |____config.py
| |____controller.py
| |____dataStruct.py
| |____issLocation.py
| |____model.py
| |____timeUtils.py
| |____utils.py
| |____views.py
| |____visitorTracking.py
|____static
| |____bootstrap
| | |____bootstrap-responsive.css
| | |____bootstrap-responsive.min.css
| | |____bootstrap.css
| | |____bootstrap.js
| | |____bootstrap.min.css
| | |____bootstrap.min.js
| |____favicon.ico
| |____img
| | |____.DS_Store
| | |____divbg.jpg
| | |____dr-manhattan-icon.png
| | |____glyphicons-halflings.png
| | |____weather
| | | |____clear-night.png
| | | |____clouds.png
| | | |____cloudy-night-icon.png
| | | |____cloudy-night.png
| | | |____cloudy.png
| | | |____Rain-Night.png
| | | |____rain.ico
| | | |____rain.png
| | | |____rainy_thunder_cloudy.png
| | | |____Snow.png
| | | |____sun-cloudy-thunder.png
| | | |____sunny.png
| |____js
| | |____jquery.min.js
| | |____main.js
| | |____testingJS.htm
| |____main.css
| |____Open_Sans-300_400_600_font.css
| |____style.css
|____templates
| |____display_weather_icon.html
| |____form.html
| |____head.html
| |____index.html
| |____landing.html
| |____layout.html
| |____map.html
| |____newMessage.html
| |____thankyou.html
|____terminal.glue
|____tests
| |______init__.py
| |____test_basic.py
我首先 运行 下面一行进行测试:
$ coverage run --source src/ -m unittest discover -s tests/
然后 运行 照常:$ coverage report -m
为什么测试覆盖率在覆盖率报告中也包含了 Flask 依赖。
我运行以下命令:coverage run tests/test_basic.py
然后 coverage report -m
这是我的报告文件:large_report_file_saved_to_pastebin
我只希望看到这个:
src/__init__.py 11 0 100%
src/appforms.py 17 0 100%
src/config.py 20 0 100%
src/controller.py 67 38 43% 35-42, 47-61, 66-75, 80, 85, 90, 95, 100, 105, 110, 115, 120
src/dataStruct.py 1 0 100%
src/model.py 111 57 49% 30-80, 88, 104, 111-118, 133-137, 159-169, 178-179, 184-187
src/timeUtils.py 41 33 20% 27-34, 52-66, 72-79, 87-90
src/utils.py 80 53 34% 21, 29, 34-43, 49-60, 71-75, 79-82, 90, 93, 98, 101, 109-114, 117-126
src/views.py 126 60 52% 41, 44-63, 75, 105-156, 172, 177, 193-194, 205-220, 227
src/visitorTracking.py 20 4 80% 37-45
tests/test_basic.py 36 0 100%
-------------------------------------------------------------------------------------------------
我只写了一些基本测试,想看看覆盖率:
import os
import sys
import unittest
import stubout
import mox
sys.path.insert(0, os.getcwd())
from src import app
from src import utils as _utils
from src.model import db
from src import timeUtils as _timeUtils
mockData = {u'city':
{
u'country': u'IN',
u'population': 0,
u'id': 1259775,
u'coord': {u'lat': 31.0292,
u'lon': 75.7842},
u'name': u'Phillaur'},
u'message': 4.410899,
u'list': [{u'clouds': 0,
u'temp': {u'min': 23.68,
u'max': 34.04,
u'eve': 32.79,
u'morn': 34.04,
u'night': 23.68,
u'day': 34.04},
u'humidity': 53,
u'pressure': 988.76,
u'weather': [{u'main': u'Clear',
u'id': 800,
u'icon': u'01d',
u'description': u'sky is clear'}],
u'dt': 1505887200,
u'speed': 0.84,
u'deg': 233}],
u'cod': u'200',
u'cnt': 1
}
class BasicTests(unittest.TestCase):
def setUp(self):
app.config['TESTING'] = True
app.config['WTF_CSRF_ENABLED'] = False
app.config['DEBUG'] = False
self.app = app.test_client()
def test_index_page(self):
self.mox = mox.Mox()
self.mox.StubOutWithMock(_utils, "getClientIp")
_utils.getClientIp().AndReturn(["127.0.0.1"])
response = self.app.get('/', follow_redirects=True)
self.addCleanup(self.mox.UnsetStubs)
self.assertEquals(response.status_code, 200)
def test_index_page_with_city(self):
self.mox = mox.Mox()
self.mox.StubOutWithMock(_utils, "getClientIp")
_utils.getClientIp().AndReturn(["127.0.0.1"])
self.mox.StubOutWithMock(_utils, "getWeatherURL")
_utils.getWeatherURL(u"Phillaur", count=u'1').AndReturn('/some/fake/URL')
self.mox.ReplayAll()
response = self.app.get('/?searchCity=Phillaur&count=1', follow_redirects=True)
self.assertEquals(response.status_code, 200)
self.mox.VerifyAll()
if __name__ == "__main__":
unittest.main()
项目目录结构如下:
|____src
| |______init__.py
| |____appforms.py
| |____config.py
| |____controller.py
| |____dataStruct.py
| |____issLocation.py
| |____model.py
| |____timeUtils.py
| |____utils.py
| |____views.py
| |____visitorTracking.py
|____static
| |____bootstrap
| | |____bootstrap-responsive.css
| | |____bootstrap-responsive.min.css
| | |____bootstrap.css
| | |____bootstrap.js
| | |____bootstrap.min.css
| | |____bootstrap.min.js
| |____favicon.ico
| |____img
| | |____.DS_Store
| | |____divbg.jpg
| | |____dr-manhattan-icon.png
| | |____glyphicons-halflings.png
| | |____weather
| | | |____clear-night.png
| | | |____clouds.png
| | | |____cloudy-night-icon.png
| | | |____cloudy-night.png
| | | |____cloudy.png
| | | |____Rain-Night.png
| | | |____rain.ico
| | | |____rain.png
| | | |____rainy_thunder_cloudy.png
| | | |____Snow.png
| | | |____sun-cloudy-thunder.png
| | | |____sunny.png
| |____js
| | |____jquery.min.js
| | |____main.js
| | |____testingJS.htm
| |____main.css
| |____Open_Sans-300_400_600_font.css
| |____style.css
|____templates
| |____display_weather_icon.html
| |____form.html
| |____head.html
| |____index.html
| |____landing.html
| |____layout.html
| |____map.html
| |____newMessage.html
| |____thankyou.html
|____terminal.glue
|____tests
| |______init__.py
| |____test_basic.py
我首先 运行 下面一行进行测试:
$ coverage run --source src/ -m unittest discover -s tests/
然后 运行 照常:$ coverage report -m