ServiceStack AppHostHttpListenerBase Невозможно подключиться к удаленному серверу

я работаю через несколько функциональных тестов в моем приложении, и я думаю, чтоЯ довольно близко. Моя проблема в том, что когда я запускаю свой первый тест, я получаю ошибку.

невозможно подключиться к удаленному серверу.

Ожидаемый: хорошо

Но было: 0

Я могу подтвердить, что если я поставлю точку останова на Assert, а затем попробую нажатьBaseUrl в моем браузере он не найден.

Вот'мой тест

[Test]
public void MyTestTest ()
{
    var client = new RestClient( ServiceTestAppHostBase.BaseUrl );
    // client.Authenticator = new HttpBasicAuthenticator( NUnitTestLoginName, NUnitTestLoginPassword );
    var request = new RestRequest( "/users/", Method.GET );
    request.RequestFormat = DataFormat.Json;
    var response = client.Execute( request );

    // do assertions on the response object now
    Assert.That( response.StatusCode, Is.EqualTo( HttpStatusCode.OK ) );
}

AppServerTestSetup выглядит так

[SetUpFixture]
public class AppServerTestSetup
{
    ServiceTestAppHostBase _appHost;

    [SetUp]
    public void SetUp()
    {
        _appHost = new ServiceTestAppHostBase();
        _appHost.Init();
        _appHost.Start(ServiceTestAppHostBase.BaseUrl);
    }

    [TearDown]
    public void TearDown()
    {
        _appHost.Dispose();
    }
}

ИServiceTestAppHostBase выглядит так

public class ServiceTestAppHostBase : AppHostHttpListenerBase
{
    public const string BaseUrl = "http://localhost:8082/";
    public ServiceTestAppHostBase () : base( "OurApp.AppServer", typeof( UserServiceInterface ).Assembly ) { }

    public override void Configure ( Container container )
    {
        JsConfig.EmitCamelCaseNames = true;

        SetConfig( new EndpointHostConfig
        {
            MapExceptionToStatusCode = {
                { typeof( NotFoundException ), 404 }, // Map exception to 404 not found http response.
                { typeof( SystemAccountChangeException ), 405 } // Map exception to 405 method not allowed.
            }
        } );

        // Shared Container Registration
        AppHostContainerRegistrations.Register( container );

        // Setup the database
        var migrationRunner = container.Resolve();

        migrationRunner.CreateDatabase();
        migrationRunner.RunAll();
    }
}

примечание: ям также с помощьюAppHostContainerRegistrations в основном приложении, и оно работает. Я'мы также убедились, что этозапускается в тестовой настройке.

AppHostContainerRegistrations (для справки) выглядит так.

public class AppHostContainerRegistrations
{
    public static void Register(Container container)
    {
        // IOC Registration
        // Register base connection config
        var dbConnection = ConfigurationManager.ConnectionStrings["databaseConnection"];
        var databaseName = ConfigurationManager.AppSettings["databaseName"];

        // Register Sqlserver DbProvider
        container.Register( containr => new DbConnectionProvider( dbConnection.ConnectionString, dbConnection.ProviderName ) );
        container.Register( containr => new DbProvider( containr.Resolve(), databaseName ) );

        // Register repositories
        container.RegisterAs();
        container.RegisterAs();
        container.RegisterAs();
        container.RegisterAs();
        container.RegisterAs();

        // Register services
        container.RegisterAs();
        container.RegisterAs();
        container.RegisterAs();

        // Register everything else
        container.RegisterAs();
        container.RegisterAs();

        container.Register( new UserModel { Id = new Guid( "6C83DDEC-5E58-4F28-BDE2-61EBF1B49691" ) } );

    }
}

Причина, по которой мынаша настройка Db выполняется следующим образом, потому что у нас есть одна строка подключения и имя базы данных в App.Config, и мы используем Transforms во время развертывания для настройки базы данных.

Может кто-нибудь помочь мне решить эту проблему?

Ответы на вопрос(1)

Ваш ответ на вопрос