Модульное тестирование на сервере сборки: выпуск или отладка кода? - PullRequest
13 голосов
/ 05 августа 2010

В .NET (C #) есть какие-либо преимущества / недостатки, связанные с сборкой отладки / выпуска для модульного тестирования?

Какую целевую конфигурацию вы обычно используете для модульного тестирования на сервере сборки? Имеет ли это значение?

Как насчет покрытия кода (для этого, я думаю, нужны отладочные версии).

Ответы [ 7 ]

9 голосов
/ 05 августа 2010

Я бы порекомендовал запустить код релиза. По нескольким причинам.

1) Это код, который будут использовать клиенты.

2) У некоторого кода есть специальные условия отладки, которые приведут к различиям между сборками отладки и выпуска.

3 голосов
/ 05 августа 2010

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

2 голосов
/ 15 июня 2012

Несмотря на то, что большинство людей явно одобряют модульное тестирование кода выпуска, мне интересно, может ли отладочная сборка выявить больше ошибок.(Возможно, я ошибаюсь)

Например, в отладочном коде VS неинициализированные переменные принудительно устанавливаются в какое-то ужасное значение вместо того, чтобы быть «случайно» 0.Возможно, в .NET это не имеет большого значения, но для меня, когда я делаю в основном алгоритмический код ядра на C ++, это может быть критически важно.

2 голосов
/ 05 августа 2010

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

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

1 голос
/ 25 июля 2015

Просто добавив еще одну причину для тестирования в режиме релиза.Некоторые сервисы CI (Appveyor) не смогут выполнить сборку, если встретятся вызовы Debug.WriteLine(), даже если сам тест зеленый.

1 голос
/ 05 августа 2010

Проще (для меня) добраться до корня исключения при тестировании кода отладки.

0 голосов
/ 13 августа 2018

Мы выполняем оба, Debug + Release.

Мы выводим отдельные результаты тестирования xml для каждой сборки.

Иногда возникают ошибки только в Debug, а иногда только в Releaseхочу поймать их как можно скорее.

Удачи!

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