【问题标题】:Web API Self hosting from a test assembly来自测试程序集的 Web API 自托管
【发布时间】:2012-11-23 11:13:00
【问题描述】:

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

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

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

【问题讨论】:

  • 这个问题是否涵盖了您想要的内容? stackoverflow.com/questions/11676828/… 特别是strathweb 链接(与内存托管的集成测试)
  • 您能告诉我您是如何让 nancy 自行托管您的测试程序集的吗?我正在尝试完全相反。我有一个自托管项目,我正在尝试让另一个项目(ASP.NET 托管)来托管它。

标签: asp.net-web-api self-hosting


【解决方案1】:

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

    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();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多