小编Ste*_*eve的帖子

Coverage.py 无法发现子目录中没有 init.py 文件的测试

当我运行 python 的覆盖率时,我总是需要__init__.py在测试子目录中有一个空文件来获取运行测试的覆盖率。这是 python2 软件包的要求,但不是 python3 的要求。为了重现,我执行了以下操作(先决条件是 python3、pip3 和 brew):

  1. 运行以下终端命令:

    pip3 install coverage
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建以下目录结构:

    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)
  1. 运行以下终端命令:

    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 …

python init coverage.py python-3.x

5
推荐指数
1
解决办法
2990
查看次数

标签 统计

coverage.py ×1

init ×1

python ×1

python-3.x ×1