Ich habe eine Testklasse und unten habe ich einen Beispieltest aus der Testklasse veröffentlicht
namespace AdminPortal.Tests.Controller_Test.Customer
{
[TestClass]
public class BusinessUnitControllerTests
{
private IBusinessUnitRepository _mockBusinessUnitRepository;
private BusinessUnitController _controller;
[TestInitialize]
public void TestInitialize()
{
_mockBusinessUnitRepository = MockRepository.GenerateMock<IBusinessUnitRepository>();
_controller = new BusinessUnitController(_mockBusinessUnitRepository);
}
[TestCleanup]
public void TestCleanup()
{
_mockBusinessUnitRepository = null;
_controller.Dispose();
_controller = null;
}
#region Index Action Tests
[TestMethod]
public void Index_Action_Calls_GetAllBusinessUnit()
{
_mockBusinessUnitRepository.Stub(x => x.GetAllBusinessUnit());
_controller.Index();
_mockBusinessUnitRepository.AssertWasCalled(x=>x.GetAllBusinessUnit());
}
}
}
Wenn ich das Projekt starte, erhalte ich folgenden Bildschirm
Ich habe die Referenzen überprüft und das Testprojekt hat den Verweis auf das Hauptprojekt. Irgendeine Idee, warum der Test nicht läuft oder sagt, dass sie nicht schlüssig waren?
Bearbeiten 1:
Ich sah einen Beitrag hier und änderte Einstellung meines Test-Standardprozessorarchitektur X64 , aber es funktioniert immer noch nicht.
c#
asp.net-mvc
asp.net-mvc-4
unit-testing
resharper
Cybercop
quelle
quelle
Antworten:
Nur für den Fall, dass keine der oben genannten Optionen für jemanden funktioniert hat, habe ich meine Instanz dieses Fehlers behoben, indem ich einen beschädigten Eintrag in meiner App.Config aufgrund eines fehlenden Nuget-Pakets im Testprojekt festgestellt habe.
quelle
<configSections>
.Für mich war es ziemlich frustrierend, aber ich habe zumindest eine Lösung für meinen Fall gefunden:
Wenn Ihre Testmethode asynchron ist, kann sie nicht ungültig sein. Es MUSS Aufgabe zurückgeben.
Hoffe es hilft jemandem :)
quelle
Ich hatte das gleiche Problem mit Resharper und habe diesen Fehler durch Ändern einer Option behoben:
Resharper => Optionen => Tools => Unit Testing
Ich musste nur die Option "Shadow-Copy-Assemblys werden getestet" deaktivieren.
quelle
Es war ein Resharper-Problem. In den Optionen Resharper-> Tools-> MSTEST habe ich das Kontrollkästchen Legacy Runner verwenden deaktiviert und jetzt funktioniert es.
quelle
Ich hatte dieses Problem und es stellte sich heraus, dass es das gleiche war wie dieses Problem hier . Diese Antwort löste das Problem für mich .
Das zweite Mal, als ich auf dieses Problem stieß, lag ein kaufmännisches Und im Dateipfad zu dem Projekt, in dem sich die Tests befinden. Es funktioniert gut mit dem Testläufer von ReSharper, aber nicht mit dem von dotCover. Entfernen Sie das kaufmännische Und aus dem Dateipfad.
Dies ist ein bestätigter Fehler mit dotCover.
quelle
Für mich hat das einfache Reinigen und Wiederherstellen der Lösung das Problem behoben.
quelle
Für mich war das Problem , eine korrupte NUnit / ReSharper Einstellungen XML-Datei (aufgrund eines unerwarteten Stromausfall).
Um den Fehler zu identifizieren, habe ich Visual Studio mit diesem Befehl gestartet :
Die Prüfung der Datei ergab die folgende Ausnahme:
Beachten Sie, dass dies NICHT die app.config des Testprojekts ist!
Ein kurzes Googeln identifizierte die folgende Datei als Schuldigen:
Es existierte, war aber leer. Durch Löschen und Neustarten von Visual Studio wurde das Problem behoben.
(Verwenden von Visual Studio Professional 2017 v15.3.5 und ReSharper 2017.2.1).
quelle
Ich habe dieses Problem in vs 2017 Update 3 mit Resharper Ultimate 2017.2 gesehen
Neustart vs oder Neustart der Maschine kann nicht helfen.
Ich habe das Problem behoben, indem ich den Cache wie folgt geleert habe:
Aktualisieren:
In der oberen rechten Ecke des Testfensters befindet sich eine Schaltfläche "Fehler" (ich finde in Resharper 2018).
Wenn Sie auf die Fehlerschaltfläche klicken, wird eine Fehlermeldung angezeigt, die zur Behebung des Problems beitragen kann.
Führen Sie Visual Studio im Protokollmodus aus, um die Ursache des Problems zu ermitteln. Führen Sie in vs 2017 den folgenden Befehl aus:
Führen Sie den Test aus.
Überprüfen Sie die Protokolldatei test_log.txt und suchen Sie in der Datei nach "Fehler".
Die Protokolldatei ist eine große Hilfe, um den Fehler zu finden, den Sie beheben können, oder Sie können das Problem mit der Protokolldatei an das technische Support-Team von Resharper senden .
quelle
Ich habe gerade auch dieses Problem behoben. Keine der Lösungen in diesem Thread funktionierte jedoch. Folgendes habe ich getan ...
Da R # keine Details darüber gab, warum die Dinge fehlschlugen, entschied ich mich, den eingebauten VS2013-Testläufer zu testen. Es zeigte genau das gleiche Verhalten, bei dem keiner der Tests ausgeführt wurde. Als ich jedoch in das Ausgabefenster schaute, hatte ich endlich eine Fehlermeldung:
Dies führte mich zu einem anderen Thread über SO mit einer Lösung. Glauben Sie mir, ich hätte NIE erraten, worum es ging.
Ich habe kürzlich beim Erstellen eines NuGet-Pakets einige Änderungen an der Datei AssemblyInfo.cs vorgenommen. Eine der Änderungen, einschließlich der Angabe eines Assembler-Kulturwerts von "en".
Ich habe das geändert:
dazu:
Das war's! Das hat meine Unit-Tests unerklärlicherweise gebrochen. Ich verstehe immer noch nicht warum. Aber zumindest funktionieren die Dinge wieder. Nachdem ich diese Änderung rückgängig gemacht hatte (dh die Kultur auf "" zurückgesetzt hatte), wurden meine Tests erneut ausgeführt.
Hoffe das hilft jemandem da draußen.
quelle
In meinem Fall waren die
[Test]
Methoden gerechtprivate
. Schandequelle
Mein Problem war, dass ich NUnit nur mit Nuget installiert hatte. Ich hatte NUnit3TestAdapter nicht installiert, was auch erforderlich war.
quelle
In meinem Fall war es ein Fehler, den ich beim Kopieren des Verbindungsstrings in die app.config gemacht habe. Ich hatte ihn in das configSections-Tag eingefügt!
Es hat eine Weile gedauert, bis mir klar wurde, dass ... danke VS Intellisense ... oder war es schärfer?
quelle
Ich hatte ein ähnliches Problem. VS 2010, c # CLR 2 Nunit 2.5.7, erstellen Sie einfach eine> saubere Lösung von VS, um dieses Problem zu beheben
quelle
In meinem Fall habe ich eine asynchrone Testmethode erstellt, die zurückgegeben wurde
void
. Rückgabe vonTask
stattvoid
gelöst das Problem.quelle
Haben Sie kürzlich eine DLL-Abhängigkeit hinzugefügt? ... wie ich
Ich bin gerade auf das gleiche Problem gestoßen und es war sehr ärgerlich, keinen Hinweis im Testausgabefenster oder anderswo praktisch zu bekommen.
Die Ursache war äußerst dumm: Ich habe gerade am Tag vor der Abhängigkeit eine zusätzliche externe DLL in einem Unterprojekt hinzugefügt, und die Hauptprojekt-App wurde nach der Änderung tatsächlich korrekt erstellt und ausgeführt. Aber meine Unit-Tests befinden sich in einem Schwesterprojekt zur Haupt-App und hatten daher auch die Abhängigkeit von diesem geänderten Unterprojekt, in dem die DLL aufgerufen wurde ... dennoch ist der Laufzeitspeicherort des Testprojekts nicht der der Haupt-App! Das Ändern des Builds zum Kopieren der fehlenden DLL in das Testlaufzeitverzeichnis hat das Problem behoben.
quelle
Ich verwende VS2013, ReSharper 9.1 mit MSpec-Erweiterung von ReSharper und Moq. Ich habe den gleichen "nicht schlüssigen" Fehler erlebt.
Es stellte sich heraus, dass einer meiner Mocks von Moq nicht initialisiert, sondern nur deklariert wurde. Alle initialisierten alle Tests wurden erneut ausgeführt.
quelle
In meinem Fall habe ich diesen Fehler aufgrund des 'Release'-Modus erhalten, in dem die Erstellung des UnitTests-Projekts einfach deaktiviert wurde. Das Zurückschalten in den Debug-Modus hat das Problem behoben.
Es ist wirklich überraschend, dass ReSharper nichts sagen kann, falls es die UnitTests-Bibliothek überhaupt nicht finden kann. Im Ernst, es ist eine Schande;)
Hoffe es wird jemandem helfen
quelle
In meinem Fall alle Tests in einigen Testprojekten innerhalb einer Lösung nicht ausgeführt, nachdem ich neue Projekte hinzugefügt hatte. Verwenden von VS 2017 mit ReSharper 2017.1.2 hier.
Stellen Sie zunächst sicher, dass Sie keine Zeit verschwenden, vorausgesetzt, Ihr Problem hängt mit ReSharper zusammen. Es ist leicht anzunehmen, dass mit ReSharper etwas nicht stimmt, wenn Sie die Unit-Test-Funktionen einschließlich Unit Test Explorer verwenden . Öffnen Sie den Test Explorer von Visual Studio unter dem Test - Menü und versuchen Sie Run All “. Der zusätzliche Vorteil dabei ist , dass das Ausgabefenster eine Fehlermeldung angezeigt, die Sie in die richtige Richtung weisen könnte. Wenn Sie feststellen , dass der gleiche Satz von Test Wenn sie nicht ausgeführt werden, kann davon ausgegangen werden, dass das Problem bei Visual Studio und nicht bei ReSharper liegt.
Am Ende habe ich eine der Active Solution-Plattformen , Any CPU , in Configuration Manager gelöscht und erneut hinzugefügt . Auf diese Weise wurden nach dem Speichern meiner Änderungen und dem erneuten Öffnen der Lösung alle Tests erneut ausgeführt.
Ich glaube, es gab einen unerwarteten Konfigurationseintrag in der Lösungsdatei, als ich neue Projekte hinzufügte und durch die Neuerstellung einer der Plattformen selbst korrigierte. Ich habe versucht, mich zu unterscheiden, aber es war schwierig zu sagen, was sich geändert hatte, um das Problem zu verursachen.
quelle
Für diejenigen, die dieses Problem für mein Testprojekt
.NET Core 2.0
in derVisual Studio 2017 Community (v15.3 3)
. Ich hatte auch diesen Fehler mitJetBrains ReSharper Ultimate 2017.2 Build 109.0.20170824.131346
- es gibt einen Fehler, den ich gepostet habe.JetBrains empfahl, ein neues Testprojekt von Grund auf neu zu erstellen, um es zu reproduzieren. Als ich das tat und die Tests in Ordnung waren, fand ich den Grund für das Problem:
*.csproj
Datei:Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}
""Als ich das tat, fingen die Tests an, gut zu funktionieren.
quelle
Ich verwende VS2010, NUnit 2.6.3 (obwohl ReSharper intern sagt, dass es 2.6.2 verwendet?), ReSharper 7.7.1 und NCrunch 2.5.0.12 und stieß auf dasselbe "... Test ist nicht schlüssig ..." mit NUnit, aber NCrunch sagte, alles sei in Ordnung. Für den größten Teil des heutigen Tages waren sich NUnit & NCrunch synchron darüber einig, welche Tests zufrieden waren und welche umgestaltet werden mussten. Dann passierte etwas, das ich immer noch nicht verstehe, und für eine Weile sagte NCrunch, ich hätte fehlgeschlagene Tests (aber das Durchlaufen zeigte dies pass), entschied dann, dass sie alle funktionierten, und NUnit begann sich über alle meine Tests zu beschweren, mit Ausnahme eines mit der gleichen Meldung "..test ist nicht schlüssig ...", die ich erneut einzeln durchlaufen konnte, obwohl NUnit fortfuhr um es als "nicht schlüssig" zu zeigen).
Ich habe einige der oben genannten Vorschläge ohne Erfolg ausprobiert und schließlich VS2010 geschlossen und die Lösung erneut geöffnet. Voila, jetzt sind alle meine Tests wieder glücklich und NCrunch & NUnit melden wieder die gleichen Ergebnisse. Leider habe ich keine Ahnung, was sich geändert hat, damit sie nicht mehr synchron sind, aber das Schließen und erneute Öffnen von VS2010 scheint das Problem behoben zu haben.
Vielleicht stößt jemand anderes darauf und kann diese einfache (wenn auch letztendlich unbefriedigende, da Sie nicht wissen, was die eigentliche Lösung ist) Lösung verwenden.
quelle
Ich hatte das gleiche Problem. Der Schuldige war eine externe Referenz, die nicht mit meinen Projekterstellungseinstellungen kompatibel war. Zum Auflösen habe ich mit der rechten Maustaste auf das Projekt-> Eigenschaften-> Build-> Plattformziel-> Wechsel von einer beliebigen CPU zu x86 geklickt.
Die spezielle * .dll, mit der ich gearbeitet habe, war System.Data.SQLite. Diese bestimmte * .dll ist für den 32-Bit-Betrieb fest codiert. Die Einstellung "Beliebige CPU" hat versucht, sie als 64-Bit zu laden.
quelle
Meine Lösung:
NUnit 3.2.0 hat einige Probleme mit Resharper - Downgrade auf 2.6.4:
quelle
In meinem Fall war meine Testmethode privat. Ich habe sie in öffentlich geändert und sie hat funktioniert.
quelle
Verursacht durch fehlende (nicht beschädigte) App.Config-Datei. Durch Hinzufügen einer neuen Datei (Hinzufügen -> Neues Element ... -> Anwendungskonfigurationsdatei) wurde das Problem behoben.
quelle
Ich hatte das gleiche Problem. Es hing mit der Kompatibilitätsversion zwischen NUnit 3.5 und Resharper 9.2 zusammen, da es durch ein Downgrade von NUnit 3.5 auf 2.6.4 behoben wurde. Es hat bei mir funktioniert. Viel Glück.
quelle
Wenn Sie verwenden
xUnit
, habe ich das Problem bei der Installation desxunit.running.visualstudio
Pakets behoben . (verwendet derzeitxUnit 2.3.1
undVS17 Enterprise 15.3.5
)quelle
Ich hatte das gleiche Problem, einen Test mit dem NUnit-Framework auszuführen. "Nicht schlüssig: Test nicht ausgeführt" Visual Studio 2017 15.5.6
ReSharper Ultimate 2017.3.3 Build 111.0.20180302.65130
Gelöst Hinzufügen der Projektabhängigkeit zu Microsoft.NET.Test.Sdk
quelle
Für diejenigen, die in Eile zur Testausführung sind, musste ich den VS 2017 Test Explorer verwenden, um Tests auszuführen.
quelle
Dieser Fehler trat bei Visual Studio 2017 und Resharper Version 2018.2.3 auf, der Fix gilt jedoch für Visual Studio 2019-Versionen von.
Um die Tests in Resharper zum Laufen zu bringen, wurde lediglich die Aktualisierung auf die neueste Version von Resharper (2019.2.1) zum Zeitpunkt des Schreibens durchgeführt.
quelle
Ich hatte genau das gleiche Problem und nichts half.
Schließlich sah ich, dass meine Namespaces des Unit-Projekts und des Unit-Test-Projekts nicht übereinstimmten.
Der Namespace meines Unit-Projekts ist unit.project und das Testprojekt wurde unit.project.tests genannt, aber der Standard-Namespace des Tests war der gleiche wie der der Unit, beide waren unit.project.
Sobald ich die Namespaces so aktualisiert habe, dass sie unterschiedlich sind (ein Namespace für jedes Projekt), hat alles funktioniert!
quelle