2

我目前正在为即将开始的新项目评估 WebAPI 和 NancyFx。我已经设法让 Nancy 从一个测试程序集中进行自我托管(它本身使用 asp.net 托管)。

有没有办法对 Web API 做同样的事情?我想将 web api 项目托管在 IIS 上,但我想从我的测试程序集中启动它,这样我就可以针对它运行测试。

我发现了一些关于如何使用 Autofac 扫描来自另一个程序集的控制器的博客文章(似乎有点倒退只是为了让另一个程序集的托管工作,但如果可以做到,我想这将是一个选择),但我会喜欢在这个项目中继续使用 Structuremap ioc。

4

1 回答 1

3

在Mark Jones 链接的帮助下设法让它工作。这就是我在测试程序集中得到的结果。

    private static HttpSelfHostServer _server;

    [BeforeTestRun]
    public static void Setup()
    {
        var config = new HttpSelfHostConfiguration(Settings.TestUri);
        WebApiConfig.Register(config); //map routes
        IocConfig.Bootstrap(config); //configure dependency injection
        _server = new HttpSelfHostServer(config);
        _server.OpenAsync().Wait();
    }

    [AfterTestRun]
    public static void TearDown()
    {
        _server.CloseAsync().Wait();
    }
于 2012-12-06T10:13:17.593 回答