2016-06-05 3 views
2

Я использую Visual Studio 2013, установленный FsUnit 2.2.0, для которого требуются NUnit 3.2.1 и FSharpCore 3.1. Я создал отдельный тестовый проект и поставил там тестовую и тестовую тесты. Моя платформа - x64 Win 10. Конфигурация предназначена для «AnyCPU» и «Debug». Я пробовал настройки теста для x86 и x64. При попытке построить и создать тесты, я получаю:Visual Studio FsUnit test setup - Exception NUnit.Engine.NUnitEngineException

------ Discover test started ------ 
NUnit Adapter 3.2.0.0: Test discovery starting 
Exception NUnit.Engine.NUnitEngineException, Exception thrown discovering tests in C:\Users\Dad\Documents\Visual Studio 2013\Projects\... 
Cannot run tests in process - a 32 bit process is required. 
Exception NUnit.Engine.NUnitEngineException, Exception thrown discovering tests in C:\Users\Dad\Documents\Visual Studio 2013\Projects\... 
Cannot run tests in process - a 32 bit process is required. 
NUnit Adapter 3.2.0.0: Test discovery complete 
========== Discover test finished: 0 found (0:00:00.1230077) ========== 

Если изменить конфигурации для обоих тестов и целевых проектов до «x86» (вместо AnyCPU), то ошибка для базового проекта уходит, но то же самое происходит для тестового проекта.

Никаких испытаний не обнаружено, помогите пожалуйста ... и огромное спасибо!

ответ

4

Вам нужно будет удалить nunit из вашего решения и установить его снова с помощью «NUnit3TestAdapter», работает версия 3.0.10.

Удалите любое программное обеспечение NUnit в программе добавления/удаления и в ваших решениях. Теперь, используя менеджер пакетов Nuget (инструменты> Диспетчер пакетов NuGet> Управление пакетами NuGet для решения ...), удалите все NUnit, которые у вас есть, и установите более старую версию (например, 3.0.1). Найдите «NUnit3TestAdapter» и установите в версии 3.0.10.

+0

Не уверен, что я смогу вернуться в VS 2013 ... Мне нужно nuget v3, чтобы иметь возможность выдать параметр -version, но расширение предварительного просмотра nuget CTP1, похоже, больше не доступно (http: //blog.nuget. орг/20140715/NuGet-3,0-ctp1.html). Я хотел бы установить FsUnit v2.0.0, который использует NUnit 3.0, но я не вижу, как это сделать. – user1857742

+1

Это сработало для меня, спасибо! – cfl

+0

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

1

В NUnit 3.2.1 есть ошибка, при которой TestEngine предполагает, что он не может выполнить тест, требующий 32-разрядного выполнения в процессе. Предположение всегда справедливо для собственных бегунов NUnit, но не обязательно, когда процесс запускается какой-либо другой программой. Там есть проблема, связанная с этим.

+1

Могу ли я перейти на более раннюю версию NUnit? Или что вы предложите в качестве обходного пути? – user1857742

+0

Я попытался понизить, до нескольких других версий, но все равно не решу проблему. Любой успех там? – cfl

+1

Вам не нужно понижать версию NUnit, потому что адаптер содержит собственную версию движка, и в любом случае он будет использоваться.Просто вернитесь к адаптеру 3.0 (3.0.10), если это проблема для вас. – Charlie

0

У меня была такая же проблема с моим проектом .NET Core 2.0 с NUnit 3.9 в Visual Studio 2017, и тесты не показывались в TestExplorer. Застрял с этим довольно долгое время. Ни одно из решений, предложенных в других связанных вопросах, не работало.

Тогда я понял из this ссылки, библиотека классов с целью .NET Standard не работает. Проект тестирования должен быть нацелен на .NET Core. Также требуется Microsoft.NET.Test.Sdk Нугет.

Таким образом, шаги

  1. Убедитесь, что тестовый проект нацелен .NET Core
  2. Установите последний NUnit NuGet (я использовал 3,9)
  3. Установите соответствующий NUnitAdapter NuGet (я использовал NUnit3Adapter)
  4. Установка Microsoft.NET.Test.Sdk NuGet

Повторная сборка и ваши тесты появятся в Проводник тестирования в Visual Studio.


Примечание: этот ответ уже добавлен в другой конкретный вопрос .NET Core. Добавление здесь тоже, поскольку решение может быть полезно и в этом сценарии.

Смежные вопросы