Как отладить тест Nunit в Visual Studio 2010
У меня есть проблема с отладкой теста NUnit из VisualStudio. Я создал пустой проект (Console Application), затем добавил ссылки на библиотеку NUnit и написал простой тест.
namespace ReimplementingLinq.Tests
{
[TestFixture]
public class WhereTest
{
[Test]
public void SimpleFiltering()
{
int[] source = { 1, 2, 3, 4, 2, 8, 1 };
var result = source.Where(val => val < 4);
int[] expected = {1,2,3,4};
CollectionAssert.AreEqual(expected, result);
}
}
}
Далее я последовал рекомендациям, приведенным в этой ссылке
Как запустить NUnit в режиме отладки из Visual Studio?, но ни одно из решений в этой теме не работает для меня. Ни один из моих контрольных точек не попадает во время выполнения теста. Я попытался проверить решение, присоединившись к этому процессу, а также выполнив проект с помощью внешней программы с аргументами.
Что я могу сделать для отладки моего unit test?
Ответы
Ответ 1
Предполагая, что вы используете версию Visual Studio, отличную от Express Edition, тогда TestDriven.NET может быть полезным.
После установки
- Установить контрольную точку в методе тестирования
- Щелкните правой кнопкой мыши и выберите "Отладчик" в меню "Тестирование с помощью"
- Отладчик должен запустить и нажать точку останова
К сожалению, вы не можете использовать этот метод с Express-версиями visual studio, потому что TestDriven.NET является плагином для визуальной студии, а выпуски Express не поддерживают использование плагинов
Запуск теста в консольном приложении
Вы также можете запустить тест в отладчике с помощью консольного приложения:
- Создание нового консольного приложения
- Ссылка на проект модулей тестирования
-
Внутри основного метода консольного приложения создайте новый экземпляр вашего теста fixuture и затем вызовите один из методов тестирования. Например, если у меня есть приложение с именем MyTests и тест с именем Test1, я бы написал:
var myTests = new MyTests();
myTests.Test1();
-
Установите точку останова в строке, где вы создаете экземпляр класса MyTests
и нажмите F5
- Отладчик ударит по вашей точке останова, а затем вы можете использовать F11 для входа в ваш конструктор TestFixture или перешагнуть его в сам тест
Ответ 2
Запуск или отладка тестов NUnit непосредственно с помощью Visual Studio
Посмотрите ma 'нет расширений!
Просто настройте тестовый проект, чтобы при нажатии F5 (начать отладку) или Ctrl-F5 (запуск без отладки) он автоматически запустит графический интерфейс NUnit и выполнит все тесты внутри него. Если ударятся какие-либо точки останова, вы также сможете просто отладить ваш тестовый код.
A пошаговое руководство с изображениями показывает вам, как это сделать.
Лень - мать всего изобретения: -)
Ответ 3
Если вы используете NUnit 2.4, вы можете поместить следующий код в свой SetUpFixture
класс. (Вы можете сделать это со старыми версиями, но вам нужно будет сделать любой эквивалент, который имеет значение SetUpFixture
, или скопировать его в сам тест.)
[SetUpFixture]
public class SetupFixtureClass
{
[SetUp]
public void StartTesting()
{
System.Diagnostics.Debugger.Launch();
}
}
Что означает Debugger.Launch()
, это вызывает появление следующего диалогового окна при нажатии кнопки "Выполнить внутри NUnit".
![JIT Debugger Dialog]()
Затем вы выбираете свой исполняемый экземпляр visual studio с открытым проектом (второй в моем скриншоте), тогда отладчик будет подключен, и в Visual Studio будут отображаться любые точки останова или исключения.
Ответ 4
Посмотрите NHarness на CodePlex.
Это очень простая, основанная на отражениях, библиотека тестовых бегунов, которая распознает атрибуты NUnit и может быть запущена из проекта в Visual Studio Express, что позволяет проводить отладочное тестирование.
В настоящее время он имеет степень детализации уровня тестового класса, но вызовы уровня метода, предположительно, скоро будут добавлены.
Ответ 5
Имел ту же проблему с NUnit 2.5.3 и в итоге нашел другое решение. Посмотрите, работает ли это для вас:
Откройте графический интерфейс NUnit и зайдите в диалоговое окно "Настройки" меню "Сервис". В подразделе "Дерево настроек" выберите подраздел "Изоляция изоляции" раздела "Тест-загрузчик". Установите модель процесса по умолчанию для запуска тестов в процессе NUnit.
У меня было настроено на запуск тестов в отдельном отдельном процессе, поэтому отладчик не смог связать мою dll под тестом с символами для его отладки. Я по-прежнему использую Использовать сперва AppDomain в сборку для моего использования по умолчанию.