在Nunit SetUpFixture类中定义全局变量

时间:2013-10-16 08:21:55

标签: c# nunit

您好我必须在我使用Nunit进行的所有测试中使用变量

SimpleContainer container = new SimpleContainer();  

所以我尝试将此定义放在安装程序类中:

[SetUpFixture]
public static class TestSetup
{
    public static SimpleContainer container = new SimpleContainer();    
}

我使用静态类来写能力:

IMyClass myClassExpected = (IMyClass)TestSetup.container.GetInstance(typeof(IMyClass), null);

但是在运行测试后我得到了这个错误:“TestSetup是一个抽象类”

我根本不明白问题在哪里

3 个答案:

答案 0 :(得分:2)

我建议你不要打扰使用静态实例,而是使用继承。

因此,创建一个基类,其中包含您的对象:

public class BaseTestFixture
{
    public SimpleContainer Container { get { return new SimpleContainer(); } }
}   

让你的所有测试继承自:

public class GoogleTests : BaseTestFixture
{
    [Test]
    public void GoToGoogle()
    {
        Container.GetInstance(.....);
    }
}   

答案 1 :(得分:0)

您将测试夹具声明为静态。因此,NUnit无法创建它的实例并为您提供错误。只需将其更改为

即可
[SetUpFixture]
public class TestSetup
{
    ...

答案 2 :(得分:0)

我可能误解了这个,但你可以声明一个类变量,并且可以在构造函数中做任何赋值。这是在TestFixture类中,而不是SetUpFixture类。