Если вы используете ядро Entity Framework, есть команда
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -Tables *insert your tables/views here* -OutputDir Models
Существует подробное руководство Начало работы с существующей базой данных
Надеюсь, это поможет
Они не походят на модульные тесты мне, но больше как функциональные испытания. Это прекрасно, автоматизирующее функциональное тестирование хорошо, но функциональным испытаниям довольно свойственно быть медленным. Они тестируют целую систему (или большие части его).
Модульные тесты имеют тенденцию быть быстрыми, потому что они тестируют одну вещь в изоляции от всего остального. Если Вы не можете протестировать вещи в изоляции от всего остального, необходимо полагать, что предупредительный знак, что Вы кодируете, слишком сильно связывается.
Можно ли сказать, какие тесты Вы имеете, которые являются модульными тестами (тестирующий только 1 вещь) по сравнению с функциональными испытаниями (тестирующий 2 или больше вещи одновременно)? Которые быстры и которые являются медленными?
Вы могли разделить свои тесты на две группы, один для коротких тестов и один для продолжительных тестов, и запускать продолжительные тесты менее часто при запущении коротких тестов после каждого изменения. Кроме этого, дразня ответы от веб-сервера и других запросов Ваше приложение делает, привел бы к более короткому тестовому прогону.
Я рекомендовал бы объединенный подход к Вашей проблеме:
Одна из самых важных вещей, которые я узнал из книги, упомянула выше: нет никакого волшебства, работающий с унаследованным кодом боль и всегда будет боль. Все, что можно сделать, признают, что факт, и прилагает все усилия для медленного прокладывания себе путь из путаницы.
Во-первых, это не модульные тесты.
Нет большой части точки, запускающей функциональные тесты как этот после каждого небольшого изменения. После значительного изменения Вы захотите запустить свои функциональные тесты.
Во-вторых, не бойтесь дразнить часть Http приложения. Если Вы действительно хотите к модульному тесту приложение, это - НЕОБХОДИМОСТЬ. Если Ваш не готовый сделать это, Вы пропадаете зря намного больше времени, пытаясь протестировать Вашу фактическую логику, ожидая Запросов HTTP для возвращения и пытаясь настроить данные.
Я сохранил бы Ваши тесты степени интеграции, но стремился бы создать реальные модульные тесты. Это решит Ваши проблемы скорости. Реальные модульные тесты не имеют взаимодействия DB или взаимодействия HTTP.
Я всегда использую категорию для "LongTest". Они тестируют, выполняются каждую ночь а не в течение дня. Таким образом, можно сократить время ожидания много. Попробуйте его: категория Ваше поблочное тестирование.
Это кажется, что Вы, возможно, должны управлять ожиданиями среди группы разработчиков также.
Я предполагаю, что люди делают несколько сборок в день и являются epxected для запущения тестов после каждой сборки. Вы могли бы мы быть хорошо поданными для переключения расписания тестирования для выполнения сборки с тестами во время ланча и затем другого за ночь.
Я соглашаюсь с Brad, что они походят на функциональные испытания. Если бы можно вытянуть код независимо, который был бы большим, но до тех пор я переключусь на менее частое тестирование.