2014-02-24 35 views
0

我有一些昂貴的安裝工作單位測試。我想對它們進行分組,並對給定的一組測試僅執行一次初始化。我已經看過setUpClass,但它在hiearchy中不起作用。我有很多來自相同基本測試的測試,他們最終會使用類方法共享狀態。Python unittest在層次結構中執行per-suite/class代碼?

例如,我有這樣的hieararchy的測試用例:

TreeBase 
    <- PineTests 
    <- NeedleTests 
    <- ConeTests 

TreeBase家庭測試都共享昂貴的初始化。但它必須自己完成每個派生類(該狀態對於派生最多的TestCase是唯一的)。所以,我要的是這樣一個流程:

  1. 呼叫PineTests ::設置
  2. 呼叫PineTests測試
  3. 呼叫PineTests ::拆解
  4. 重複的NeedleTests,ConeTests
+0

你能分享你的工作設置嗎? – Oz123

+0

@ Oz123,這有幫助嗎? –

回答

0

模塊可以用作測試套件。將測試功能分組到模塊中,並使用setUpModuletearDownModule功能。這不完全是我想要的文件結構,但它確實有效。

類從TestCase推導仍然可以在此設置中使用,你並不需要恢復到使用普通功能。儘管如此,將常用功能保留在全局幫助器類中更好。這樣你就不需要多依賴unittest了。