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.