How do I make coverage include not tested files?

你。 提交于 2019-12-31 08:28:33

问题


I have just started writing some unit tests for a python project I have using unittest and coverage. I'm only currently testing a small proportion, but I am trying to work out the code coverage

I run my tests and get the coverage using the following

python -m unittest discover -s tests/
coverage run -m unittest discover -s tests/
coverage report -m

The problem I'm having is that coverage is telling I have 44% code coverage and is only counting the files that:

  1. were tested in the unit tests (i.e., all the files that were not tested are missing and not in the overall coverage)

  2. were in the libraries in the virtual environment and code coverage of the actual tests too. Surely it should not be including the actual tests in the results?

Furthermore, it says the files that are actually tested in these unit tests only have the first few lines tested (which are in most cases the import statements)

How do I get a more realistic code coverage or is this how it is meant to be?


回答1:


Add --source=. to the coverage run line. It will both limit the focus to the current directory, and will search for .py files that weren't run at all.




回答2:


If you use nose as a testrunner instead, the coverage plugin for it provides

  --cover-inclusive     Include all python files under working directory in
                        coverage report.  Useful for discovering holes in test
                        coverage if not all files are imported by the test
                        suite. [NOSE_COVER_INCLUSIVE]

  --cover-tests         Include test modules in coverage report
                        [NOSE_COVER_TESTS]


来源:https://stackoverflow.com/questions/34728734/how-do-i-make-coverage-include-not-tested-files

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!