Окно проводника тестов Visual Studio не находит мои тесты после реализации расширения NUnit

Я реализую тестовое решение в Visual Studio 2013 Professional. Я выбрал NUnit (версия 2.6.4) в качестве тестовой среды. Я установил тестовый адаптер NUnit, чтобы выполнять свои тесты также в Visual Studio. Все работало правильно, пока я не вошел в класс расширения NUnit, чтобы получить сообщения об ошибках утверждений ... До реализации этого класса в обозревателе тестов Visual Studio все мои тестовые классы и связанные методы были перечислены правильно; после реализации расширения, когда я перестроил свое решение, список тестов больше не появляется (окно тестового проводника видно, но когда я создаю/перестраиваю свое решение, ничего не отображается).

Все мои классы public, каждый тестовый класс украшен атрибутом [TestFixture], каждый тестовый метод - атрибутом [Test]. Ниже моего класса расширения:

using System;
using COLL = System.Collections.Generic;
using NUnit.Core.Extensibility;
using NUnit.Core;

namespace UTDirectPLM
{
 [NUnitAddinAttribute(Type = ExtensionType.Core)]
 public class ExtensionToLog
 {
   // the wrong behaviour occurs also if I leave empty the class body.
 }
}

Что я забыл?


person baru    schedule 13.05.2015    source источник
comment
В вашем демонстрационном коде у вас нет класса надстройки, реализующего интерфейс IAddIn, вы делаете это в своей реальной реализации? Документация NUnit   -  person Sven Grosen    schedule 13.05.2015
comment
Да, у меня есть... но теперь я отмечаю, что когда я создаю свое решение, все КАЖЕТСЯ в порядке... но NUnit выдает исключение; вывод сборки такой: ------ Discover test started ------ NUnit 1.2.0.0 discovering tests is started Exception System.InvalidCastException, Exception thrown discovering tests in C:\...\UnitTestProject.dll NUnit 1.2.0.0 discovering test is finished == Discover test finished: 0 found (0:00:00.4271482) ==   -  person baru    schedule 13.05.2015


Ответы (2)


Похоже, это ошибка в версии ядра NUnit 2.6.4. Я могу воспроизвести его с 2.6.4, но с помощью ядра 2.6.3 - даже с фреймворком 2.6.4 заставляет работать. Так что это обходной путь. Все, что мне нужно было, чтобы заставить его работать или нет, это изменить nunit.core.interfaces.dll на версию 2.6.3. (По мере реализации вам, конечно, потребуется заменить все используемые основные библиотеки DLL на версию 2.6.3)

Поскольку NUnit v2 больше не поддерживается, вся работа теперь сосредоточена на NUnit 3. Вы можете заглянуть в V3, даже если она все еще находится в бета-версии (бета-версия 2 уже вышла). У него есть другой и [надеюсь] лучший способ расширения. Взгляните на вики по адресу https://github.com/nunit/nunit/wiki/Action-Attributes

person Terje Sandstrøm    schedule 14.05.2015
comment
Я попробую ваше предложение. Во всяком случае, в прошлом (2-3 месяца назад) я закодировал расширение для регистрации сообщений об ошибках, используя версию ядра NUnit 2.6.4, и все работало нормально... Я просмотрел это старое решение и отметил, что в прошлом я использовал тестовый адаптер NUnit версии 1.2.0.0, а теперь NuGet Packet Manager предоставляет версию 2.0.0.0. - person baru; 15.05.2015
comment
После вашего ответа это проблема ... фактическая версия тестового адаптера NUnit предоставляет версию 2.6.4 nunit.core.interfaces.dll . Версия 1.2.0.0 NUnit Test Adapter предоставляет версию 2.6.3. Обратите внимание, что для выполнения тестов в Visual Studio вам нужна dll тестового адаптера, а не dll, помещенная в папку программы NUnit... dll в папке программы NUnit должна использоваться для работы с графическим интерфейсом NUnit (здесь подробнее). - person baru; 15.05.2015
comment
Чтобы было ясно: как предложил Терье С., я решил свою проблему, заменив старую версию NUnit T.A. nunit.core.interfaces.dll с dll, предоставленным 1.2.0.0 NUnit T.A. один. - person baru; 15.05.2015
comment
Спасибо, что подтвердили это. Я зарегистрирую это как ошибку в версии 2.6.4 и буду следить за ней. (Или, если вы хотите сделать это, не стесняйтесь - на github.com/nunit/nunitv2/issues< /а> - person Terje Sandstrøm; 15.05.2015
comment
эта ошибка исправлена ​​или нет? Я все еще работаю с NUnit 2.6.3, но поскольку я перехожу на Windows 10, я хотел бы обновить версию NUnit до 2.6.4. - person baru; 06.05.2016

У меня была похожая проблема, но причина заключалась в том, что при установке пакета NUnit NuGet отсутствовал пакет NuGet NUnit Test Adapter для VS2013. Не было никаких сообщений, чтобы предложить это как проблему.

person john rains    schedule 13.07.2015