Мы пишем инфраструктуру модульного тестирования с использованием MSTest, чтобы мы могли протестировать проект интеграции инфраструктуры AIF, который у нас есть.
Мы не могли придумать способ использования макетов, поэтому нашим решением было сделать снимок базы данных в начале модульных тестов, а затем восстановить и удалить его в конце с помощью инициализации и очистки сборки.
Затем наша тестовая структура выполняет вход в систему AX для создания необходимых данных, а затем выходит из системы и удаляет их. Затем мы упорядочиваем нужные нам данные и проталкиваем их через службу AIF.
К моменту, когда мы добираемся до восстановления моментального снимка, он падает и говорит, что не может восстановить базу данных, пока другие пользователи используют базу данных. (несмотря на то, что мы убираем сервис после его использования). Мы можем решить эту проблему, запустив перед ним другой SQL-запрос, который перебирает все сеансы и уничтожает их (кроме текущего). Это позволяет БД восстанавливаться правильно, но поскольку мы не корректно закрываем сеансы, служба AX считает, что есть проблема, и отключается, что, как вы можете себе представить, не очень полезно!
Таким образом, у нас есть уловка 22 здесь.
Я не включил сюда какой-либо код, потому что не думаю, что это поможет, но если вы думаете, что это поможет, дайте мне знать.
Пожалуйста, помогите мне, я буквально на пределе своих возможностей!