首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xUnit测试中的红隼不听

xUnit测试中的红隼不听
EN

Stack Overflow用户
提问于 2019-07-26 17:35:51
回答 1查看 882关注 0票数 1

我使用这个自定义服务器进行单元测试,我用MyStarup初始化它,它加载了测试所需的单个中间件。

这以前对net47起过作用,在我将项目切换到..net core之后就停止了。现在它给了我一个非常有用的例外:

System.Net.Sockets.SocketException无法连接,因为目标机器主动拒绝了127.0.0.1:30001

我用一个工厂方法从一个IClassFixture创建它,然后用一个HttpClient调用它,这个HttpClient也是用一个工厂方法创建的,并从相同的夹具中得到它。

代码语言:javascript
复制
public class MyServer : IDisposable
{
    private readonly IWebHost _host;        

    public MyServer(string url) // <-- http://localhost:30001
    {
        _host =
            new WebHostBuilder()
                .UseKestrel()
                .UseUrls(url)                    
                .UseStartup<MyStartup>()
                .Build();

        Task = _host.StartAsync(); // <-- tried RunAsync too, no difference
    }

    public Task Task { get; set; }

    public void Dispose()
    {
        _host.Dispose();
    }
}

所以我的问题是,我怎样才能让它再起作用?

我读过这个Why Kestrel doesn't listen at specified port? ,但它无助于解决它。我不能将它作为控制台运行,而且它以前也在工作。为什么它在切换到..net core之后就停止了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-26 20:36:52

我想通了。您需要使用自定义配置来为urls指定Kestrel值,否则它将使用一些随机(?)或默认端口5001。我不想使用hosting.json,所以我使用了InMemoryCollection

代码语言:javascript
复制
    public MyServer(string url)
    {
        var configuration =
            new ConfigurationBuilder()
                .AddInMemoryCollection(new Dictionary<string, string>
                {
                    ["urls"] = url
                })
                .Build();

        _host =
            new WebHostBuilder()
                .UseKestrel()
                //.UseUrls(url) // <-- cannot use this, seems to be deprecated
                //.Configure(app => { app.UsePathBase(url); }) // <-- does not work
                .UseConfiguration(configuration)
                .UseStartup<MyStartup>()
                .Build();

        Task = _host.StartAsync();
    }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57224717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档