2009-09-21 79 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