当我运行 python 的覆盖率时,我总是需要__init__.py在测试子目录中有一个空文件来获取运行测试的覆盖率。这是 python2 软件包的要求,但不是 python3 的要求。为了重现,我执行了以下操作(先决条件是 python3、pip3 和 brew):
运行以下终端命令:
pip3 install coverage
Run Code Online (Sandbox Code Playgroud)创建以下目录结构:
example\
example.py
tests\
test_example.py
Run Code Online (Sandbox Code Playgroud)示例.py:
#!/usr/bin/env python3
class Example:
value = 3
def update(self):
self.value = 4
Run Code Online (Sandbox Code Playgroud)
测试示例.py:
#!/usr/bin/env python3
import unittest
from example.example import Example
class TestExample(unittest.TestCase):
def test_example(self):
example_object = Example()
self.assertEqual(3, example_object.value)
example_object.update()
self.assertEqual(4, example_object.value)
Run Code Online (Sandbox Code Playgroud)
运行以下终端命令:
coverage run --branch -m unittest discover -s . && coverage report
Run Code Online (Sandbox Code Playgroud)我应该得到:Ran 1 test in x.yz seconds,但我总是得到Ran 0 tests in x.yz …