2014-01-31 2 views
0

У меня возникла странная проблема с Visual Studio 2010 Ultimate: Один из моих тестовых примеров Nunit (2.6.2) не работает в режиме отладки но в режиме запуска, как если бы у нас были совершенно разные кодовые пути для двух сценариев.Visual studio 2010: тестовый случай Nunit не работает в режиме отладки, но переходит в режим запуска

Это известная ошибка? или есть какой-то вариант в vs, я не хватает?

Пожалуйста, просветите меня! Большое спасибо.

EDIT - ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ Мое приложение отправляет некоторые запросы в DLL, написанные группой людей внутри организации. Dll выполняет некоторые вычисления и возвращает результаты мне.

В тестовом примере, изучающем поведение dll (например, отправьте запрос с определенным параметром, проверьте вывод dll), запуск теста Nunit отлично работает, но отладка тестового примера дает мне ошибку - исключение было выбрано изнутри это dll.

ВАЖНО: Запуск/отладка другого тестового примера дает мне последовательные результаты.

Итак, для странного теста: 1, либо длл хорошо, и что-то в режиме отладки разрывает DLL 2, или, то длл есть ошибка, которая запускается что-то в режиме отладки ,

Насколько я знаю, единственная разница между запуском и отладкой фрагмента кода в визуальной студии заключается в том, что при отладке загружается файл pdb, а при запуске его нет. По сути, таблица символов загружается для идентификации выполнения кода.

Тогда проблема не имеет смысла в первую очередь - почему загрузка таблицы символов влияет на поведение dll? (Нечестно просить кого-нибудь дать объяснение, не видя никакого кода, однако, поскольку это корпоративный код, я не могу его здесь показать. Пожалуйста, если вы когда-либо сталкивались с такими вещами в своей карьере, поделитесь со мной что произошло в вашем случае - будем надеяться, что моя проблема имеет ту же причину, чтобы я мог действительно знать, что пошло не так. Спасибо)

+1

Это действительно помогло бы, если бы вы дали нам некоторое представление о том, что вы тестируете и как выглядит сбой теста. –

+0

Вы используете два разных файла .dll или указываете на один и тот же точный файл? Могут быть разные версии dll. Кроме того, это обычное исключение или Windows? Постарайтесь объяснить об этом, если можете, можете дать представление. – bland

ответ

0

Благодарим за отзыв. Я определил причину: это связано с ложным параметром, который управляет dll-гайками. Виноват. Он по-прежнему не отвечает на вопрос, почему поведение в отладочное время сходит с ума, но хорошо работает при тестировании.

Однако, я полагаю, поскольку параметр в первую очередь ошибочен, я не могу обвинять dll в том, что вы сходите с ума. Во всяком случае, когда я прошел правильный парам, все прошло хорошо.

Большое спасибо.

0

Вы, возможно, столкнетесь с ситуацией, когда вы принимаете тот же путь кода, но результаты несколько отличаются в отладке против неотладочного из-за оптимизации. Здесь есть несколько различных возможностей:

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

Это боль не в состоянии отлаживать, но я предлагаю вам добавить ведение журнала по всему методу и тесту, чтобы вы могли видеть, что происходит. (И надеюсь, что сам журнал не изменит результат теста, что также возможно ...)