我有两个带有单元测试的文件,第二个文件上的测试扩展并覆盖了第一个文件上的一些测试。
用一个非常简化的例子来说明。有tests1.py
:
import unittest
class A(unittest.TestCase):
def setUp(self):
print "setup stuff A"
def test_stuff(self):
print "test stuff A"
if __name__ == "__main__":
unittest.main()
并且tests2.py
:
import unittest
from tests1 import A
class B(A):
def setUp(self):
print "setup stuff B"
def test_stuff(self):
print "test stuff B"
if __name__ == "__main__":
unittest.main()
我希望能够单独运行每个文件,或者一次运行整个文件集。而且我不想手动创建不同的套件,我必须手动指定要运行的测试集......
但是...对于上面的示例,当我运行 时,也会运行python tests2.py
的测试!tests1.py
当我批量运行它们时,它们运行了两次。我知道发生这种情况是因为我A
从tests2.py
. 我怎样才能避免这种情况?是否有我应该遵循的最佳实践?
我实际上是从 PyCharm 运行测试,但我想这可能不相关,因为我可以重现从命令行运行测试的相同问题。