2012-05-08 2 views
8

Я пытаюсь отлаживать тесты после вызова метода установки, и тесты зависят от вызываемого метода установки.Nunit не работает Метод SetUp в режиме отладки Visual Studio

Я использую Nunit 2.6.0.12051, тестируя библиотеку классов. Net 4.0. Проект nunit Visual Studio имеет класс, помеченный [SetUpFixture] и метод, отмеченный [SetUp].

Если я запускаю тесты из NUnit gui, я уверен, что класс setup attrib'd вызывается (потому что он не остановлен в классе установки с ошибкой во время выполнения), но я могу " t отлаживать его. Если я попытаюсь изменить настройки, чтобы увидеть Verbose Tracing, NUnit gui выдает необработанное изъятие.

Если я запускаю тесты из Visual Studio с помощью Test View/Debug Selection, точка останова в методе установки не останавливает выполнение, а операторы трассировки внутри метода не печатаются в окне отладки. Поэтому я уверен, что метод настройки не вызван.

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

Любая помощь будет замечательной.

+0

Из-за отсутствия технического ответа и изучения этого с точки зрения дизайна. Я собираюсь удалить атрибуты и просто вызывать метод из тестов, которые зависят от него (90% тестов). Метод также будет иметь флаг, который выполняет только работу, если она еще не была выполнена. Это позволит каждому тесту легко читаться с точки зрения того, что происходит - вместо того, чтобы что-то делать, найдите способ установки или базовый класс. – DFBerry

ответ

2

Я заметил это при использовании новейшего NUnit от NuGet (2.6). Метод [Setup] не запускается перед [Test] -методами.

Я не знаю, почему они изменили эту значительную часть NUnit, но я исправил ее для своих целей, вернувшись к версии 2.5.10, которая запускает [Setup] перед [Test].

+0

Я только что столкнулся с этим, так что все еще проблема в 2.6.2. – Jammer

+2

Обратите внимание, что [SetUp] чувствителен к регистру, по крайней мере, это решило проблему для меня в версии 2.6.4, где я непреднамеренно использовал другую [Setup] атрибут, который предположительно был добавлен NUnit или VS. –

1

У меня была эта проблема, но установка последней версии тестового бегуна (TestDriven.NET в моем случае) исправила его. Для меня это не вопрос NUnit.

3

Я просто побежал в этот вопрос, и в конце концов нашел существенное предложение от NUnit SetUpFixture documentation:

«Это атрибут, который знаменует собой класс, который содержит настройки или Teardown методов одноразовых для всех тестовых ПОДВЕРГАЕМОГО заданное пространство имен ".

Оказалось, что мой класс SetUpFixture был в совершенно другом пространстве имен, чем мои тесты, поэтому он не запускался.

Смежные вопросы