Недавно я создал тестовую среду для части C #, над которой я работал. У меня есть настроенный NUnit и новый проект в моем рабочем пространстве для тестирования компонента. Все работает хорошо, если я загружаю свои модульные тесты из Nunit (v2.4), но я дошел до точки, когда было бы действительно полезно запустить в режиме отладки и установить несколько точек останова.
Я пробовал предложения из нескольких руководств, которые предлагают изменить свойства «Отладка» тестового проекта:
Start external program: C:\Program Files\NUnit 2.4.8\bin\nunit-console.exe
Command line arguments: /assembly: <full-path-to-solution>\TestDSP\bin\Debug\TestDSP.dll
Я использую там консольную версию, но также пробовал вызывать графический интерфейс. Оба выдают одну и ту же ошибку, когда я пытаюсь начать отладку:
Cannot start test project 'TestDSP' because the project does not contain any tests.
Это потому, что я обычно загружаю \ DSP.nunit в графический интерфейс Nunit и там проводятся тесты?
Я начинаю думать, что проблема может заключаться в том, что VS хочет запустить собственную тестовую среду, и поэтому не может найти тесты NUnit?
Изменить : для тех, кто интересуется тестовыми приборами, один из моих файлов .cs в проекте TestDSP выглядит примерно так:
namespace Some.TestNamespace
{
// Testing framework includes
using NUnit.Framework;
[TestFixture]
public class FirFilterTest
{
[Test]
public void Test01_ConstructorTest()
{
...some tests...
}
}
}
... Я новичок в C # и тестовой среде NUnit, поэтому вполне возможно, что я пропустил важную информацию ;-)
Окончательное решение : большой проблемой был проект, который я использовал. Если вы выберете Other Languages -> Visual C# -> Test -> Test Project
... при выборе типа проекта, Visual Studio попытается использовать свою собственную среду тестирования, насколько я могу судить. Вместо этого вы должны выбрать обычный проект библиотеки классов C #, и тогда инструкции в моем выбранном ответе будут работать.
источник
Ответы:
Я использую тот же метод, что и вы, Джон, без флага / assembly, т.е.
Содержит ли TestDSP.dll все ваши TestFixtures?
Поскольку мой тестовый проект не является запускаемым проектом в решении, я запускаю свои тесты, щелкнув правой кнопкой мыши тестовый проект и выбрав «Отладка» -> «Начать новый экземпляр».
источник
/run
в свои * аргументы командной строки, которые автоматически начнут выполнять тесты ... Я также суммировал все это (используя изображения) в своем сообщении в блоге .<supportedRuntime version="v2.0.50727" />
в nunit.exe.config.Когда мне нужно отладить свои тесты NUnit, я просто подключаюсь к приложению
nunit-agent.exe
с графическим интерфейсом NUnit, используя «Отладка | Присоединить к процессу», и запускаю тесты из графического интерфейса. Все точки останова в моих тестах (или коде, который они тестируют) срабатывают. Я неправильно понимаю ваш вопрос, или это сработает для вас?источник
<startup> <supportedRuntime version="4.0" /> </startup>
.Просто удалите линию, которая выглядит как
из файла вашего проекта. Эта строка в основном сообщает VS.Net, что это тестовый проект, поэтому «Невозможно запустить тестовый проект». К вашему сведению, 1-й гид говорит: «Это тест», 2-й говорит: «Это C #». Для получения информации об этих руководствах: http://www.mztools.com/Articles/2008/MZ2008017.aspx
источник
В дополнение к ответу, предоставленному @Justin, вот еще несколько деталей для NUnit 2.6.
Используя NUnit 2.6, подключайтесь к nunit.exe или nunit-console.exe, а НЕ к агенту. Конфигурация, отмеченная @Justin, немного отличается. Ниже приведен пример из nunit.exe.config (то же самое для nunit-console.exe.config).
Для тестового проекта .NET 4, чтобы получить точки останова, вам придется закомментировать или удалить строку v2.0, как предполагает комментарий. Как только я это сделал, я смог отладить тестовый проект .NET 4.0.
источник
v2.0.50727
строкой при отладке сборок .NET 2 из VS2005 с помощью nunit. (v4
Линия помешала прикреплению отладчика VS 2005.)Если вы используете NUnit 2.4 или новее, вы можете поместить следующий код в свой
SetUpFixture
класс. (Вы можете сделать это со старыми версиями, но вам нужно будет сделать то, что эквивалентноSetUpFixture
, или скопировать его в сам тест.)какой
Debugger.Launch()
нажатии кнопки «Выполнить в NUnit» появляется следующий диалог.Затем вы выбираете свой работающий экземпляр Visual Studio с открытым проектом (второй на моем снимке экрана), тогда отладчик будет прикреплен, и любые точки останова или исключения будут отображаться в Visual Studio.
источник
В Nunit 3.0.1 (я использую VS2013) откройте главное меню> Тест> Windows> Обозреватель тестов. Затем в «Обозревателе тестов» щелкните тестовый пример правой кнопкой мыши, вы можете увидеть:
Надеюсь это поможет.
источник
Установите TestDriven.NET , плагин для Visual Studio.
Оттуда вы можете щелкнуть правой кнопкой мыши свою сборку модульного теста и выбрать «Выполнить тесты», чтобы запустить весь набор, щелкните правой кнопкой мыши класс TestFixture, чтобы запустить только тесты в этом классе, или щелкните правой кнопкой мыши метод Test, чтобы запустить только этот метод.
У вас также есть возможность протестировать с помощью отладчика, если вам нужно установить точку останова в ваших тестах в режиме отладки.
источник
Попробуйте NUnitit - надстройку Visual Studio с открытым исходным кодом для отладки тестовых случаев NUnit
Домашняя страница - http://nunitit.codeplex.com/
источник
Удалите ProjectTypeGuids из файла проекта.
источник
Теперь с картинками:
File -> Open Project
Выберите свой тест
.dll
из папки bin (C:\......\[SolutionFolder][ProjectFolder]\bin\Debug\xxxxTests.dll
)Перейдите в Visual Studio
Debug -> Attach to process
(откроется окно Прикрепить к процессу)Прокрутите список вниз и выберите,
nunit-agent.exe
затем щелкнитеAttach
На этом этапе точки останова в ваших тестах должны стать спелыми красными (из пустотелых).
Нажмите
Run
на ,Nunit Gui
и вы должны получить точки останова хит ...Надеюсь, это сэкономит вам время.
источник
Если вы можете заставить консоль / или графический интерфейс работать, но ваши точки останова не достигаются, это может быть связано с тем, что ваше приложение работает в другой среде выполнения .NET, чем NUnit. Проверьте, указана ли в nunit-console.exe.config / nunit.exe.config указанная среда выполнения (конфигурации находятся в том же каталоге, что и исполняемые файлы nunit.) Укажите среду выполнения с помощью узла запуска:
источник
Если путь к проекту содержит пробелы, например, «Новый проект» в пути
<path>\bin\Debug\New Project\Quotes.Domain.Tests.dll
заключите параметр «Пуск» -> Путь к проекту «Аргументы командной строки» в двойные кавычки.Я потратил много времени, чтобы понять это.
источник
Относительно того, что сказал г-н Патрик Макдональд
Я попытался подать заявку на получение своей библиотеки тестовых классов, но получил некоторую ошибку относительно пути, поэтому я попытался удалить «Аргументы командной строки», и, к счастью, это сработало хорошо и, как ожидалось.
источник
Похоже, вы пытаетесь использовать не ту библиотеку. NUnit может запуститься только в том случае, если используемая вами dll содержит TestFixtures.
+1 на TestDriven.Net. У меня была возможность использовать его несколько раз. Вы можете загрузить персональную версию для ознакомительных целей в соответствии с лицензией по адресу http://testdriven.net/purchase_licenses.aspx .
источник
У меня такая же ошибка с MSTest. Я обнаружил, что в окне вывода теста некоторые тесты имеют повторяющиеся идентификаторы и не могут быть загружены. Я удалил все повторяющиеся тесты, и теперь я смог запустить тесты при запуске проекта.
источник
Также есть расширение "Visual NUnit", которое позволит вам запускать тесты из Visual Studio, как и при сборке в тестовой среде. Проверьте это в диспетчере расширений.
источник
Откройте Visual Studio ---> ваш проект ---> выберите "Свойства" ---> выберите "Отладка" -> выберите "Запустить внешнюю программу" и укажите путь к вашему NUnit (например: Запустить внешнюю программу = C : \ Program Files \ NUnit 2.6.2 \ bin \ nunit.exe) ----> Сохранить
После установки просто нажмите Debug
источник
Для меня решением было адаптировать файл конфигурации nunit. Чтобы использовать nunit с платформой 4.5-.Net и опцией сборки x64, мне пришлось добавить одну строку в тег запуска (поддерживаемая версия времени выполнения).
После этого я мог начать, щелкнув правой кнопкой мыши Testproject Debug -> Start new instance. Раньше мне снова приходилось вручную присоединять проект к процессу.
Мои свойства отладки были: C: \ Program Files (x86) \ NUnit 2.6.4 \ bin \ nunit.exe с аргументом расположения тестируемой библиотеки DLL.
Дополнительная информация: nunit для тестирования с .NET 4.0
источник
Посмотрим, поможет ли это .. Как добавить NUnit в Visual Studio
(RighteousRant) Хотя лично мне этот подход не нравится ... Если вам нужен отладчик, пока вы тестируете свой код, это "запах" в том смысле, что вы недостаточно уверены / не знаете, как работает ваш код, и вам нужен отладчик. отладчик, чтобы сказать вам это. TDD избавит вас от необходимости в отладчике, если все сделано правильно. Используйте «Присоединить отладчик к NUNit» только в редких случаях или когда вы влезаете в чужой код.
источник