Должен ли тестируемый код компилироваться в DLL или исполняемый файл? - PullRequest
0 голосов
/ 14 апреля 2010

У меня есть решение с двумя проектами. Один для проекта для производственного кода и другой проект для модульных тестов. Я сделал это в соответствии с предложениями, которые я получил от SO.

Я заметил, что в папке отладки она содержит производственный код в исполняемом виде. Я использовал NUnit для запуска тестов после удаления исполняемого файла, и все они не могут найти исполняемый файл. Так что он определенно пытается найти его. Затем я быстро прочитал, чтобы выяснить, что лучше: DLL или исполняемый файл. Кажется, что DLL намного быстрее, поскольку они разделяют пространство памяти, где связь между исполняемыми файлами медленнее.

К сожалению, наш производственный код должен быть выполнимым. Таким образом, юнит-тесты будут немного медленнее. Я не слишком беспокоюсь об этом. Но проект полагается на код, написанный в другой библиотеке, которая также находится в исполняемом формате на данный момент.

Должны ли проекты, которые предоставляют какой-либо SDK, быть скомпилированы в DLL, а затем проекты, использующие SDK, скомпилированы в исполняемый файл?

1 Ответ

1 голос
/ 14 апреля 2010

Тот факт, что это исполняемый файл, не означает, что он загружается как отдельный процесс.

В .NET вы можете загрузить файл EXE как сборку так же легко, как DLL. Вот что происходит в этом случае (я бы вообразил, во всяком случае) - нет межпроцессного взаимодействия, нет проблем.

Если вы действительно тестируете что-то, что по логике должно быть исполняемым файлом, то это нормально.

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