1

嗨,我是 Mono 和 ServiceStack 的新手,在 OSx 上的 Xamarin Studios 上运行集成测试时遇到问题。

我正在关注AppHostListenerBaseTests.cs此处的示例,但我无法通过测试。

    private const string listeningOn = "http://localhost:8080/";
    private myAppHost appHost; // extends AppHostHttpListenerBase

    [TestFixtureSetUp()]
    public void TestFixtureSetUp ()
    {
        appHost = new myAppHost ();
        appHost.Init ();
        appHost.Start (listeningOn);

        System.Console.WriteLine("ExampleAppHost Created at {0}, listening on {1}",
                                 DateTime.Now, listeningOn);
    }

    [TestFixtureTearDown()]
    public void TestFixtureTearDown ()
    {
        if (appHost == null)
            return;
        appHost.Dispose ();
        appHost = null;
    }

    [Test()]
    public void StartupWebService ()
    {
       html = listeningOn.GetStringFromUrl();
       Assert.That(html.Contains("The following operations are supported."));
    }

Mono 将始终抛出System.Net.WebException:远程服务器返回错误(404)。

这很令人困惑,因为构建整个 Web 服务工作正常。它启动并到达元页面,但尝试使用相同代码在测试中运行它会中断。我不确定这是否是 OSx 上的 Xamarin 的问题,或者我只是在测试用例中遗漏了一些简单的东西。有没有人处理过类似的问题?

4

1 回答 1

1

在您的情况下,我假设您不是从模拟器运行集成测试,而是从真实设备运行。

如果是这种情况,您收到 404 是正常的,因为http://localhost:8080/可能只存在于您的机器中,而不是手机中。

于 2015-08-14T12:10:57.003 回答