Nunit 努尼特+;OWIN启动类-无法使用SetUpFixture和OneTimeSetUp属性

Nunit 努尼特+;OWIN启动类-无法使用SetUpFixture和OneTimeSetUp属性,nunit,owin,Nunit,Owin,我已经创建了一个单元测试项目(我正在使用nUnit),我想在其中使用OWIN自宿主&Castle Windsor 但问题是,我无法在执行任何测试之前初始化以下代码 [assembly: OwinStartup(typeof(UnitTests.Startup))] namespace UnitTests { [SetUpFixture] public class Startup { public static IWindsorContainer _c

我已经创建了一个单元测试项目(我正在使用nUnit),我想在其中使用OWIN自宿主&Castle Windsor

但问题是,我无法在执行任何测试之前初始化以下代码

[assembly: OwinStartup(typeof(UnitTests.Startup))]
namespace UnitTests
{   
    [SetUpFixture]
    public class Startup
    {
        public static IWindsorContainer _container;

        [OneTimeSetUp]
        public void Configuration(IAppBuilder appBuilder)
        {
            var config = new HttpConfiguration();

            containerWithControllers = new WindsorContainer();

            //....
            config.DependencyResolver = new CastleResolver(_container);

            appBuilder.UseWebApi(config);
        }
    }
}

问题是SetUpFixture是由nunit框架创建的,而标记为OneTimeSetUp的方法不能有任何参数。因此,您的SetUpFixture类应该如下所示:

[SetUpFixture]
public class SetUpFixture
{
    public static TestServer _server;

    [OneTimeSetUp]
    public void SetUp()
    {
        _server = TestServer.Create<Startup>();
    }
}
[SetUpFixture]
公共类设置
{
公共静态测试服务器(publicstatictestserver);;
[一次性设置]
公共作废设置()
{
_server=TestServer.Create();
}
}

问题在于SetUpFixture是由nunit框架创建的,标记为OneTimeSetUp的方法不能有任何参数。因此,您的SetUpFixture类应该如下所示:

[SetUpFixture]
public class SetUpFixture
{
    public static TestServer _server;

    [OneTimeSetUp]
    public void SetUp()
    {
        _server = TestServer.Create<Startup>();
    }
}
[SetUpFixture]
公共类设置
{
公共静态测试服务器(publicstatictestserver);;
[一次性设置]
公共作废设置()
{
_server=TestServer.Create();
}
}