我與TestCase
的雙繼承一個python UNITEST腳本如下:如何才能使我的單一測試方法只有一次?
import unittest
class Upper(unittest.TestCase):
def test_dummy(self):
pass
class Lower(Upper):
pass
if __name__ == '__main__':
unittest.main()
的思想是定義與測試方法的具體實現上流,並從這個類派生(在不同的子目錄),其包含一些額外的設置功能。最後,有一個upper.py
,從中衍生出許多不同的test_lower.py
。測試方法僅在upper.py
中實施。
鑑於上面的例子,我現在只做一個python test_example.py
來看到python試圖運行2個測試!該腳本只包含一個測試,那爲什麼unittest要執行兩個測試?
我認爲單元測試發現內Lower
一個測試和Upper
一個測試在某種程度上,但我只想要執行它在Lower
(因爲額外的和需要設置的功能)測試發現。我怎樣才能做到這一點?
上下文在實際情況下,兩個類定義在兩個不同的文件中,駐留在兩個目錄中。也許這有幫助。
我不太明白你的建議是什麼。測試方法必須駐留在'Upper'中,這就是這個想法的重點。我不想將完全相同的測試方法代碼複製並粘貼到多個dubdirectories中。 – Alex 2013-03-20 14:19:48
如果跳過了,我顯示一個測試正在運行,一個跳過。這是不可接受的,因爲我需要運行所有測試,而沒有跳過測試。 – Alex 2013-03-20 14:28:21
好主意,但我需要'unittest'的功能在INSERT類的'upper'中。 (實際上,我不直接使用'unittest',而是使用不同的派生類,並且需要使用函數內部)。 – Alex 2013-03-20 14:36:26