Запустите компонент Docker внутри модульного теста в C # - PullRequest
0 голосов
/ 26 сентября 2019

Чтобы запустить модульное тестирование в наших классах репозиториев, у нас была база данных в памяти, которая создавалась в начале теста и удалялась в конце части using.Мы делаем это как на SQL Server (с Effort), так и на MongoDb (пользовательская библиотека).Мы планируем перевести нашу базу данных mongodb в azure cosmosdb, и я ищу способ запуска базы данных cosmosdb в оперативной памяти в моей среде разработки и агентах сборки VSTS.

Чтение следующего документа Я вижу, что есть способ установить эмулятор azure cosmosdb в качестве док-контейнера.И этот документ говорит о запуске док-контейнера с кодом C #.

Вот пример теста с использованием базы данных mongodb в памяти:

[TestMethod]
[ExpectedException(typeof(ZonierListNullOrEmptyException))]
public async Task ShouldThrowExceptionWhenNoDataSent()
{
    var databaseName = "tests";
    var mongoRepositoryConfigurationManager = new Mock<IMongoRepositoryConfigurationManager>();
    var empltyZonierList = new List<Zonier>();

    mongoRepositoryConfigurationManager.Setup(x => x.MongoDatabaseName).Returns(databaseName);

    using (var embedded = new EmbeddedMongoDbServer())
    {
        mongoRepositoryConfigurationManager.Setup(x => x.MongoConnection).Returns(string.Format("mongodb://{0}", embedded.Settings.Server.ToString()));

        IZonierRepository zonierRepository = new ZonierRepository(mongoRepositoryConfigurationManager.Object);

        await zonierRepository.InsertZonierDataAsync(null);
        await zonierRepository.InsertZonierDataAsync(empltyZonierList);
    }
}

Doкто-то уже добился чего-то подобного с докер-контейнером?Если у вас есть документ, касающийся моих потребностей, поделитесь им.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...