【发布时间】:2012-05-17 13:19:35
【问题描述】:
我有两个包含单元测试的文件,第二个文件上的测试扩展并覆盖了第一个文件上的一些测试。
用一个非常简单的例子来说明。有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 的测试也运行了!当我批量运行它们时,它们运行了两次。我理解这是因为我从tests2.py 导入A。我怎样才能避免这种情况?有没有我应该遵循的最佳实践?
我实际上是从 PyCharm 运行测试,但我想这可能不相关,因为我可以重现从命令行运行测试的相同问题。
【问题讨论】:
标签: python unit-testing pycharm