3
我使用的coverage.py獲取我的django unittests的覆蓋率數據,但我似乎無法弄清楚如何在django調試服務器上運行覆蓋率。我想用運行Django的服務器:django調試服務器的代碼覆蓋率
coverage -x manage.py runserver 0.0.0.0:8080
,並停止該服務器時,我應該使用覆蓋數據,我可以生成覆蓋報告獲得。但是在用CTRL-c關閉服務器時,我得到了
^CCoverage.py警告:沒有收集到數據。
如果無法使用此coverage.py腳本,則可以使用任何其他工具。
UPDATE:
隨着--noreload它似乎工作,但生成HTML覆蓋率報告時,我得到了下面的堆棧跟蹤:
traceback (most recent call last):
File "/usr/local/bin/coverage", line 8, in <module>
load_entry_point('coverage==3.5.1', 'console_scripts', 'coverage')()
File "/usr/local/lib/python2.6/dist-packages/coverage/cmdline.py", line 657, in main
status = CoverageScript().command_line(argv)
File "/usr/local/lib/python2.6/dist-packages/coverage/cmdline.py", line 549, in command_line
directory=options.directory, **report_args)
File "/usr/local/lib/python2.6/dist-packages/coverage/control.py", line 599, in html_report
reporter.report(morfs, config=self.config)
File "/usr/local/lib/python2.6/dist-packages/coverage/html.py", line 83, in report
self.report_files(self.html_file, morfs, config, config.html_dir)
File "/usr/local/lib/python2.6/dist-packages/coverage/report.py", line 86, in report_files
report_fn(cu, self.coverage._analyze(cu))
File "/usr/local/lib/python2.6/dist-packages/coverage/html.py", line 198, in html_file
self.write_html(html_path, html)
File "/usr/local/lib/python2.6/dist-packages/coverage/html.py", line 103, in write_html
write_encoded(fname, html, 'ascii', 'xmlcharrefreplace')
File "/usr/local/lib/python2.6/dist-packages/coverage/backward.py", line 137, in write_encoded
f.write(text.decode('utf8'))
File "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xdf in position 59130: invalid continuation byte
不,在我的項目中沒有什麼不尋常的。我擁有的版本是:Ubuntu 10.10,django 1.3,覆蓋率3.5。 – Divick
我發現只有在我的.coveragerc中設置include = */views.py時,它才能收集數據。如果我刪除這一行,我確實收集了數據,但它顯示代碼的覆蓋率爲0%(我的.coveragerc具有source =。)。如果我刪除了source =。設置,我沒有看到我的項目中的應用程序內存在的文件的名稱。我期望在沒有unittests的情況下收集數據的原因是,使用單元測試的覆蓋範圍只能說明測試的覆蓋範圍統計信息,這是人爲的,並且不會告訴您某個用戶交互的真實場景中的覆蓋範圍。 – Divick
我會首先運行它,不包含任何包含或源代碼指令,以查看測量結果的全貌。 –