2016-06-05 15 views
2

Ich verwende Visual Studio 2013, installierte FsUnit 2.2.0, die NUnit 3.2.1 und FSharpCore 3.1 erfordert. Ich habe ein separates Testprojekt erstellt und eine Testvorrichtung und einen Test dort hineingestellt. Meine Plattform ist x64 Win 10. Die Konfiguration ist für 'AnyCPU' und 'Debug'. Ich habe Testeinstellungen für x86 und x64 versucht. Beim Versuch, Tests zu bauen und zu schaffen, die ich erhalte:Visual Studio FsUnit-Testkonfiguration - Ausnahme 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) ========== 

Wenn ich die Config für zu ‚x86‘ sowohl die Test- und Zielprojekte ändern (statt AnyCPU), dann entfernt der Fehler für das Basisprojekt geht, aber Das gleiche passiert für das Testprojekt.

Keine Tests werden jemals entdeckt, bitte helfen Sie ... und vielen Dank!

Antwort

4

Sie müssen nunit aus Ihrer Lösung entfernen und es erneut mit "NUnit3TestAdapter" installieren, Version 3.0.10 funktioniert.

Deinstallieren Sie alle NUnit-Software im Programm hinzufügen/entfernen und in Ihren Lösungen. Verwenden Sie nun den Nuget-Paketmanager (Tools> NuGet-Paket-Manager> NuGet-Pakete für die Lösung verwalten ...), entfernen Sie alle NUnit, die Sie in einer Lösung haben, und installieren Sie eine ältere Version (z. B. 3.0.1). Suchen Sie "NUnit3TestAdapter" und installieren Sie es in Version 3.0.10.

+0

Nicht sicher, ob ich in VS 2013 zurückrollen kann ... Ich brauche nuget v3, um die Option -version ausgeben zu können, aber die nugget CTP1 Vorschau-Erweiterung scheint nicht mehr verfügbar zu sein (http: //blog.nuget. org/20140715/nugget-3.0-ctp1.html). Ich möchte FsUnit v2.0.0 installieren, das NUnit 3.0 verwendet, aber ich sehe nicht, wie man das macht. – user1857742

+1

Das hat bei mir funktioniert, danke !! – cfl

+0

Es hat nichts geklappt, es hat funktioniert, um die Komponententests wieder zu entdecken, aber wenn ich versuche, "alle laufen" bekomme ich den gleichen Fehler ... – cfl

1

Es liegt ein Fehler in NUnit 3.2.1 vor, bei dem die TestEngine annimmt, dass sie keinen Test ausführen kann, der eine 32-Bit-Ausführung im Prozess erfordert. Die Annahme gilt immer für NUnit-eigene Läufer, aber nicht unbedingt, wenn der Prozess von einem anderen Programm gestartet wird. Es gibt ein Problem darüber.

+1

Kann ich auf eine frühere NUnit-Version herunterstufen? Oder was würden Sie als Workaround vorschlagen? – user1857742

+0

Ich habe versucht, auf mehrere andere Versionen herabzustufen, behebt das Problem jedoch immer noch nicht. Irgendein Erfolg dort? – cfl

+1

Sie müssen Ihre Version von NUnit nicht downgraden, da der Adapter eine eigene Version der Engine enthält und diese in jedem Fall verwendet wird.Gehen Sie einfach zum 3.0-Adapter (3.0.10) zurück, wenn dies für Sie weiterhin ein Problem darstellt. – Charlie

0

Ich hatte das gleiche Problem mit meinem .NET Core 2.0 Projekt mit NUnit 3.9 in Visual Studio 2017 und Tests wurden nicht in TestExplorer angezeigt. War lange damit beschäftigt. Keine der in anderen verwandten Fragen vorgeschlagenen Lösungen funktionierte.

Dann dachte ich, von this Link darauf hin, dass eine Klassenbibliothek mit Ziel .NET Standard funktioniert nicht. Das Testprojekt muss auf .NET Core ausgerichtet sein. Außerdem ist Microsoft.NET.Test.Sdk NuGet erforderlich.

Also, die Schritte sind

  1. Vergewissern Sie sich, dass das Testprojekt zielt .NET Core
  2. Installieren Sie die neueste NUnit NuGet (I verwendet 3.9)
  3. NUnitAdapter NuGet Installieren entsprechenden (I verwendet NUnit3Adapter)
  4. Installieren Sie Microsoft.NET.Test.Sdk NuGet

Erneut erstellen und Ihre Tests werden in Test Explorer in Visual Studio angezeigt.


Hinweis: Diese Antwort wurde bereits einer anderen .NET Core-spezifischen Frage hinzugefügt. Hinzufügen auch hier, da die Lösung auch in diesem Szenario hilfreich sein könnte.