2009-09-21 93 views
0

我正在計劃使用nUnit實施一些測試。我還有一個本地的度量記錄庫,我想用它來從測試中獲取一些指標。所述度量庫在應用中通常使用的,並且通常使用這樣的事:如何在NUnit測試對象之間使用持久對象?

// retrieve configuration. 
string path = GetPath(); 
bool option = GetOption(); 

// Set up metrics recording object. 
Metrics m = new Metrics(path, option); 

Do.Something(); 
m.AddRecord(new Record()); // Record some metrics on what just happened 

// later... 

m.Finish(); // let it know we're done. 

現在,我可以在每個對象使用TestFixtureSetupTestFixtureTeardown創建該對象的一個​​實例(例如,在父測試類) ,但我寧願讓這個度量對象持續在全部測試運行。是否有可能,如果有的話,有什麼必要這樣做?

回答

3

您可以使用SetUpFixtureAttribute - 「標記包含給定名稱空間下所有測試裝置的一次性設置或拆卸方法的類。」

+0

看起來像這是nUnit的方式。謝謝! – 2009-09-22 00:18:12

+0

不錯,我不知道這個屬性... – 2009-09-22 00:24:10

1

,可以將該度量對象作爲一個單身,或僅僅作爲一個輔助類的靜態屬性:

class TestHelper 
{ 
    public static Metrics Metrics { get; private set; } 

    static TestHelper 
    { 
     string path = GetPath(); 
     bool option = GetOption(); 
     Metrics = new Metrics(path, option); 
    } 

} 

OK,這不是一個很好的模式,但對於單元測試應該罰款。 ..

+0

辛格爾頓有他們的位置。這可能只是一個。 :) – 2009-09-21 23:24:50

+0

是的,但只有當他有控制度量類... – 2009-09-22 00:23:22