Как запустить NUnit в режиме отладки из Visual Studio? - PullRequest
116 голосов
/ 17 апреля 2009

Я недавно создавал тестовый фреймворк для немного C #, над которым я работал. У меня есть настроенный NUnit и новый проект в моей рабочей области для тестирования компонента. Все работает хорошо, если я загружаю свои модульные тесты из Nunit (v2.4), но я дошел до того, что было бы очень полезно запустить в режиме отладки и установить некоторые точки останова.

Я попробовал предложения из нескольких руководств, которые все предлагают изменить свойства 'Debug' тестового проекта:

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 #, и тогда инструкции в моем выбранном ответе будут работать.

Ответы [ 19 ]

2 голосов
/ 16 января 2012

Если вы можете заставить консоль / или графический интерфейс работать, но ваши точки останова не достигают цели, это может быть связано с тем, что ваше приложение работает в среде выполнения .NET, отличной от NUnit. Проверьте, имеет ли ваша nunit-console.exe.config / nunit.exe.config указанную среду выполнения (конфигурации находятся в том же каталоге, что и exe-файлы nunit.) Укажите среду выполнения с помощью узла запуска:

<configuration>
    <startup>
       <supportedRuntime version="4.0" />
    </startup>
2 голосов
/ 16 декабря 2010

Если путь проекта содержит пробелы, например «Новый проект» в пути <path>\bin\Debug\New Project\Quotes.Domain.Tests.dll, затем заключите параметр проекта -> Аргументы командной строки в двойные кавычки.

Я потратил много времени, чтобы понять это.

1 голос
/ 28 марта 2010

Относительно того, что мистер Патрик Макдональд сказал

Поскольку мой тестовый проект не является проектом запуска в решении, я запускаю свои тесты, щелкая правой кнопкой мыши по тестовому проекту и выбирая Отладка -> Начать новый экземпляр

Я пытался подать заявку на мою библиотеку тестовых классов, но получил некоторую ошибку в отношении пути, поэтому я попытался удалить «Аргументы командной строки», и, к счастью, он работал хорошо и как ожидалось.

0 голосов
/ 20 октября 2015

Для меня решением было адаптировать файл конфигурации nunit. Чтобы использовать nunit с 4.5- .Net Framework и опцией сборки x64, мне пришлось добавить одну строку в тег запуска (поддерживаемая runtime-версия).

<startup useLegacyV2RuntimeActivationPolicy="true">
        <!-- Comment out the next line to force use of .NET 4.0 -->
        <supportedRuntime version="v4.0.30319" />
</startup>

После этого я мог бы начать, щелкнув правой кнопкой мыши на Testproject Debug -> Start new instance. Раньше мне нужно было снова вручную прикреплять проект к процессу.

Мои свойства отладки были, C: \ Program Files (x86) \ NUnit 2.6.4 \ bin \ nunit.exe с аргументом расположения .dll для проверки.

Дополнительная информация: nunit для тестирования с .NET 4.0

0 голосов
/ 31 октября 2013

Откройте Visual Studio ---> ваш проект ---> Выберите «Свойства» ---> Выберите «Отладка» -> Выберите «Запустить внешнюю программу» и укажите путь к вашей NUnit там (например: Запустите внешний program = C: \ Program Files \ NUnit 2.6.2 \ bin \ nunit.exe) ----> Сохранить

После установки просто нажмите Отладка

0 голосов
/ 11 апреля 2012

Теперь также имеется расширение «Visual NUnit», которое позволит вам запускать тесты из Visual Studio во многом так же, как встроенные дескрипторы инфраструктуры тестирования. Проверьте это в менеджере расширений.

0 голосов
/ 17 апреля 2009

Посмотрите, поможет ли это .. Как добавить NUnit в Visual Studio

(RighteousRant) Хотя лично мне не нравится этот подход. Если вам нужен отладчик, когда вы тестируете свой код, это «запах» в том, что у вас недостаточно уверенности / умения Ваш код работает и вам нужен отладчик, чтобы сказать вам это. TDD должен освободить вас от необходимости отладчика, если все сделано правильно. Используйте «Присоединить отладчик к NUNit» только в редких случаях или когда вы вмешиваетесь в чужой код.

0 голосов
/ 17 апреля 2009

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

+ 1 на TestDriven.Net. У меня был шанс использовать это несколько раз. Вы можете скачать персональную версию для ознакомительных целей в соответствии с лицензией на http://testdriven.net/purchase_licenses.aspx.

0 голосов
/ 08 июня 2010

Я получил ту же ошибку с MSTest. Я обнаружил, что в окне Test Output некоторые тесты имели дублированные идентификаторы и не могли быть загружены. Я удалил все повторяющиеся тесты и теперь смог запустить тесты при запуске проекта.

...