1
我有兩個單元測試文件,第二個文件的測試擴展並覆蓋了第一個文件的一些測試。只運行特定文件的測試
用一個非常簡單的例子來說明。有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運行測試,但我想這可能不相關,因爲我可以從命令行重現運行測試的相同問題。
可行的,即使不理想......一樣會有針對每對一個新的''Parent''類類「A」和「B」。我需要共享測試實現幾十個例子,所以會有很多新類 –
我已經編輯了你的例子,以便在''A''和''B''中我們可以覆蓋setUp() ''Parent''。否則,在調用super()時調用TestCase.setUp(),而不是預期的Parent.setUp() –