I am refactoring a legacy Python project, which did not have any unittests.
Assuming a directory structure like this:
C:.
├───scripts
│ schema.sql
├───src
│ │ .coverage
│ │ bar.py
│ │ baz.py
│ │ foo.py
│ │ __init__.py
│ └───utils
│ __init__.py
└───tests
.coverage
test_foo.py
福.py看起来像:
import bar
import baz
import requests
import psycopg2
import os
import sys
print(requests.__file__)
def foo():
return 'foo'
if __name__ == '__main__':
print(foo())
test_福.py看起来像:
import unittest
import foo
class Test_Foo(unittest.TestCase):
def test_foo(self):
result = foo.foo()
self.assertEqual(result, 'foo')
我刚刚定义了foo.py
个测试,运行unittests:
python.exe -m unittest discover -s . && coverage report -m
C:\data\...\venv\lib\site-packages\requests\__init__.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
Name Stmts Miss Cover Missing
------------------------------------------------------------
C:\data\myProject\src\bar.py 2 1 50% 2
C:\data\myProject\src\foo.py 11 4 64% 6-8, 12, 16
------------------------------------------------------------
TOTAL 13 5 62%
使用nose,输出显示了"站点包"中包的缺失测试,我不想看到:
nosetests -w ..\src --cover-inclusive --cover-tests --with-coverage --cover-erase --cover-html
Name Stmts Miss Cover
-----------------------------------------------------------
bar.py 2 1 50%
baz.py 2 1 50%
certifi\__init__.py 2 2 0%
...
decimal.py 10 10 0%
encodings\idna.py 180 180 0%
hmac.py 60 60 0%
http\client.py 756 756 0%
http\client.py 756 756 0%
http\cookiejar.py 1102 1102 0%
http\cookies.py 248 248 0%
idna\__init__.py 4 4 0%
idna\__init__.py 4 4 0%
idna\core.py 291 291 0%
idna\core.py 291 291 0%
idna\idnadata.py 4 4 0%
idna\idnadata.py 4 4 0%
idna\intranges.py 30 30 0%
idna\intranges.py 30 30 0%
idna\package_data.py 1 1 0%
idna\package_data.py 1 1 0%
mimetypes.py 194 194 0%
numbers.py 134 134 0%
psycopg2\__init__.py 22 22 0%
...
src\__init__.py 0 0 100%
src\bar.py 2 1 50%
src\baz.py 2 1 50%
src\foo.py 11 2 82%
src\utils\__init__.py 0 0 100%
stringprep.py 65 65 0%
urllib3\__init__.py 34 34 0%
...
-----------------------------------------------------------
TOTAL 14613 14600 1%
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
如何查看常规的unittest/coverage报告以及工作目录中未经测试的其他文件?