NUnit не працює з кодом Visual Studio 2010


98

Я намагаюся завантажити бета-dll dll Visual Studio 2010 у графічний інтерфейс NUnit. Я отримую помилку спливаючого вікна.

Ця збірка побудована тим часом виконання, що перевищує поточний час завантаження, і не може бути завантажена. Можливо, ви намагаєтеся завантажити збірку збірки з пізнішою версією CLR, ніж версією, під якою в даний час працює NUnit.

Як змусити виконуваний файл працювати під NET 4?


Чи справді це питання стосується коду VS 2010 чи .NET 4? - Я шукаю інструмент, який дозволяє мені запускати тести NUNIT на Visual Studio 2010, і це питання було оманливим.
— Ніколя Ірісаррі

@Nicolas - його посилання на .NET 4.0.
— Даніель А. Білий

Відповіді:


132

Я завантажив джерело NUnit 2.5 і відкрив рішення VS2008 у бета-версії VS2010. Після завершення перетворення я відкрив усі проекти та змінив цільову рамкову установку для всіх проектів на ".NET Framework 4.0". Потім я побудував рішення без жодних помилок. Тепер я можу використовувати додаток GUI NUnit для запуску тестів, побудованих для .NET 4.0. Я не робив вичерпного тестування цієї збірки, тому можуть виникнути проблеми, але для моїх цілей це працює чудово.

Оновлення: Не потрібно відновлювати NUnit. Я виявив, що якщо ви додасте наступне до відповідного файлу конфігурації NUnit, ви можете запустити тестовий dll, створений для .NET 4.0.

У розділі <конфігурація> додайте:

<startup>
  <supportedRuntime version="v4.0.30319" />
</startup>

і під <runtime> додати:

<loadFromRemoteSources enabled="true" />

3
Гаразд, оновлення конфігурації спрацьовують, але мені довелося використовувати version = "v4.0.21006" для мого тегу RequRuntime.
— mkmurray

4
До речі, розташування конфігураційного файлу за замовчуванням: C: \ Program Files \ NUnit 2.5.3 \ bin \ net-2.0 \ nunit.exe.config Додавання цих параметрів до конфігурації, який працював для мене.
— Бред Ірбі

2
Не вдалося це працювати з останньою Nunit + .net4 RTM. Я додав запропоновані записи до nunit-console.exe.config, але я отримую: System.ArgumentException: Рамка net-4.0 недоступна. Перепробовано з вищевказаними версіями + v4.0.30319 Я запускаю 2008 R2 x64
— Andreas Öhlund

1
Для консольного бігуна змініть конфігурації, як було зазначено, але використовуючи v4.0.30319 для RTM версії .NET 4.0. Також запустіть його за допомогою цього аргументу командного рядка: /framework=4.0.30319
— Lance Fisher

1
Мені пощастило використовувати параметр командного рядка /framework:net-4.0.30319 замість зміни конфігурації. Це було корисно, щоб я міг контролювати, які програми використовували 4.0 CLR, а які ні.
— Кевін Кроуелл

25

З випуском .NET 4 я звик

<supportedRuntime version="v4.0.30319" />

в NUnit 2.5.4 exe.config замість RequRuntime, і тег loadFromRemoteResources, як показано вище, і все працювало добре. Дякую!


17

Вам не потрібно змінювати жоден файл

просто відкрийте цей файл, і все буде добре

C: \ Файли програми (x86) \ NUnit 2.5.10 \ bin \ net-2.0 \ nunit-x86.exe


Дякую - вирішив мій випадок. Доведеться використовувати x86 версію nunit для одиничних тестів, складених x86. Попередження версії CLR були оселедцем рудої. Використання нуніту 2.5.10.
— Nigel Touch

Тут же якось доводиться використовувати версію x86
— жовтня

12

У NUnit 2.5.5 ви можете вказати в командному рядку параметр /framework=net-4.0, і він сумісний з новими збірками, згенерованими з випуском останнього VS2010.


3
Мені ніколи не вдалося змусити це працювати. Я бачив, як люди використовують /framework:net-4.0.30319 та всілякі інші варіанти. Було б добре, якби вони включили фактичні параметри на документи документації на сайті.
— Jason Short

2
@Jason Схоже, що це працює лише у консольній версії. У версії GUI немає цієї опції.
— Роман Старков

+1 за згадку, що це працює, починаючи з версії 2.5.5! Мені довелося NUnit кидати ArgumentExceptions і NullReferenceExceptions на одній із моїх машин, і виявилося, що це було через версію 2.5.0.
— realMarkusSchmidt

2

Запропоноване рішення спрацювало чудово для того, щоб NUnit запустився. На жаль, коли я перейшов до свого кроку покриття коду, NCover почав давати мені:

Профільований процес припинено. З'єднання з профілем не встановлено.

Найкращим рішенням, що я знайшов для цього, було просто використовувати "-x86" версію NUnit з NCover:

NCover.Console.exe nunit-console-x86.exe - додаткові параметри--

Працює зараз.


1
Дякую за це, у мене виникла та сама проблема, ваше вирішення вирішено!
— CubanX

2

Щоб знайти свою версію .net 4 з Visual [C # 2010 Express або будь-коли], перейдіть до програми "Відомості" програми Visual під пунктом довідки меню. Він повинен відображатися як версія у рядку Microsoft .NET Framework у верхній правій частині вікна.


1

Я наткнувся на те саме повідомлення про помилку під час роботи NUnit 2.4.8. Оскільки я не оновлювався протягом певного часу, я встановив поточний NUnit (v2.5.9) і виявив, що він тепер підтримує збірки VS2010. Отже, якщо ви нещодавно зіткнулися з цією помилкою, перевірте свою версію NUnit : станом на грудень 2010 року (або близько того), єдине, що вам потрібно зробити, - це оновити NUnit.


я запускаю NUnit 2.5.9, завантажений 15.03.2011, і ця проблема просто не піде для мене. Навіть якщо я спробую запропонувати рішення
— DrLazer

1

Станом на NUnit 2.5.10 ви можете ввімкнути підтримку візуальної студії в бігу GUI:

Інструменти-> Установки-> Підтримка IDE

Після цього я зміг успішно приєднатись до процесу nunit-agent.exe, який запускає збірку в домені додатка .NET 4.0


0

Якщо у вас виникло це питання після оновлення до nunit 2.5.5, тоді вам потрібно буде оновити nant до останньої версії для мене, це було .91 альфа.


0

Я знайшов корисно почати з шаблону додатків NUnit . Він підтримує VS C # Express, дозволяє налагоджувати тести і містить попередньо складений NUnit для .NET 4.0. Завдяки автору новий тестовий проект готується одним клацанням миші.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.