为什么python 2.7.9 UnitTestDiscovery会运行两次测试?

2024-10-05 10:02:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python2.7.9中,当一个测试模块从另一个模块中的测试类继承时,测试发现会运行一些测试两次。这是一个bug还是有合法的理由让某些测试运行两次?在

$ cat foo/test_foo.py
import unittest

class BaseTestCase(unittest.TestCase):
    pass

class TestFoo(BaseTestCase):
    def test_A(self):
        pass

class TestBar(TestFoo):
    pass

$ cat foo/test_baz.py
import unittest
from test_foo import TestFoo

class TestBaz(TestFoo):
    pass

$ python -m unittest discover  --start-directory foo -v
test_A (test_foo.TestBar) ... ok
test_A (test_foo.TestFoo) ... ok
test_A (test_baz.TestBaz) ... ok
test_A (test_foo.TestFoo) ... ok

----------------------------------------------------------------------
Ran 4 tests in 0.000s

OK

Tags: 模块pytestimportfoookpassbaz

热门问题