c# visual La méthode de test n'est pas concluante: le test n'a pas été exécuté. Erreur?




xunit vs nunit (24)

C'était un problème de Resharper. Dans les options Resharper-> Outils-> MSTEST, j'ai décoché l'utilisation de Legacy Runner et maintenant cela fonctionne.

J'ai une classe de test et ci-dessous j'ai posté un test d'échantillon de la classe de test

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());
        }
    }
}

Quand je lance le projet, j'obtiens l'écran suivant

J'ai vérifié les références et le projet de test a la référence au projet principal. Une idée de pourquoi les tests ne sont pas en cours d'exécution ou de dire qu'ils n'étaient pas concluants?

Modifier 1:

J'ai vu un post here et j'ai changé l'architecture de processeur par défaut de mon test en X64 mais ça ne marche toujours pas.


Dans mon cas j'ai eu cette erreur à cause du mode 'Release' où la construction du projet UnitTests était simplement désactivée. Le retour au mode 'Debug' l'a corrigé.

Il est vraiment surprenant que ReSharper ne puisse rien dire au cas où il ne trouverait pas du tout la bibliothèque UnitTests. Sérieusement, c'est une honte;)

J'espère que ça va aider quelqu'un


Dans mon cas, c'était une erreur que j'ai faite en copiant la chaîne de connexion dans le fichier app.config. Je l'avais placé dans la balise configSections!

Cela m'a pris un moment pour me rendre compte que ... merci VS IntelliSense si ... ou était-ce resharper?


J'ai eu le même problème avec resharper et j'ai corrigé cette erreur en changeant une option:

Resharper => Options => Outils => Tests unitaires

Je devais simplement décocher l'option "Assemblages de copies fantômes en cours de test"


J'utilise VS2013, ReSharper 9.1 avec l'extension MSpec de ReSharper et Moq. J'ai rencontré la même erreur "non concluante".

Il s'est avéré que celui de mes Mock de Moq n'était pas initialisé, seulement déclaré. Les uns ont initialisé tous les tests ont fonctionné à nouveau.


Dans mon cas, ma méthode de test était privée, je l'ai changé en public et cela a fonctionné.


J'avais ce problème, et il s'est avéré être le même que ce problème ici . Cette réponse a résolu le problème pour moi .

  1. Décochez "Créer uniquement des projets de démarrage et des dépendances sur Exécuter" (Options -> Projets et solutions -> Construire et exécuter)
  2. Dans Configuration Manager, assurez-vous que le projet de démarrage et le projet de test ont coché "Build".

La deuxième fois que j'ai rencontré ce problème, c'était dû à une esperluette dans le chemin du fichier vers le projet où les tests résidaient. Cela fonctionne bien avec le lanceur de test de ReSharper, mais pas avec dotCover. Supprimez l'esperluette du chemin de fichier.

Ceci est un bug confirmé avec dotCover.


J'ai juste corrigé ce problème aussi. Cependant, aucune des solutions de ce thread n'a fonctionné. Voici ce que j'ai fait ...

Comme R # ne donnait aucun détail sur les raisons de l'échec, j'ai décidé d'essayer le coureur de test VS2013 intégré. Il a connu exactement le même comportement où aucun des tests n'a été exécuté. Cependant, en regardant dans la fenêtre de sortie, j'ai finalement eu un message d'erreur:

Une exception s'est produite lors de l'appel de l'exécuteur exécuteur de l'exécuteur: // mstestadapter / v1 ': référence d'objet non définie sur une instance d'un objet.

Cela m'a conduit à un autre thread sur SO avec une solution. Croyez-moi, je n'aurais jamais deviné quel était le problème.

J'ai récemment apporté quelques modifications au fichier AssemblyInfo.cs lors de la création d'un package NuGet. Un des changements incluant la spécification d'une valeur de culture d'assemblage de "en".

J'ai changé ça:

[assembly: AssemblyCulture("")] 

pour ça:

[assembly: AssemblyCulture("en")]`. 

C'était ça! C'est ce qui a brisé inexplicablement mes tests unitaires. Je ne comprends toujours pas pourquoi, cependant. Mais au moins les choses fonctionnent à nouveau. Après avoir rétabli ce changement (c.-à-d. Remettre la culture à ""), mes tests ont recommencé à fonctionner.

J'espère que ça aide quelqu'un.


Dans mon cas, j'ai créé une méthode de test asynchrone qui renvoyait void . Returning of Task au lieu de void résolu le problème.


J'ai eu exactement le même problème et rien n'a aidé.

Finalement, j'ai vu que j'avais un décalage dans mes espaces de noms du projet d'unité et du projet de test unitaire.

L'espace de nom de mon projet d'unité est unit.project et le projet de test s'appelait unit.project.tests mais l'espace de nom par défaut du test était le même que l'unité, les deux étant unit.project.

Une fois que j'ai mis à jour les espaces de noms pour être différent (un espace de nom pour chaque projet) tout a fonctionné!


J'ai eu problème similaire. VS 2010, c # CLR 2 Nunit 2.5.7, juste construire> solution propre de VS a aidé à résoudre ce problème


Pour moi, simplement nettoyer et reconstruire la solution l'a réparé.


Pour moi, c'était plutôt frustrant, mais j'ai trouvé une solution pour mon cas au moins:

Si votre méthode de test est asynchrone, elle ne peut pas être annulée. Il DOIT retourner la tâche.

J'espère que ça aide quelqu'un :)


Dans mon cas trouvé que le TestCaseSource a un nombre différent d'arguments que le paramètre dans la méthode de test.

[Test, TestCaseSource("DivideCases")]
public void DivideTest(int n, int d, int q)
{
    Assert.AreEqual( q, n / d );
}

static object[] DivideCases =
{
    new object[] { 12, 3 },
    new object[] { 12, 2 },
    new object[] { 12, 4 } 
};

Ici, chaque tableau d'objets dans DivideCases a deux éléments qui devraient être 3 car la méthode DivideTest a 3 paramètres.


J'ai eu le même problème.Il était lié à la version de compatibilité entre NUnit 3.5 et Resharper 9.2, car il a été résolu en rétrogradant de NUnit 3.5 à 2.6.4. Cela a fonctionné pour moi. bonne chance.


Dans mon cas, tous les tests dans certains projets de test dans une solution ont commencé à ne pas démarrer après l'ajout de nouveaux projets. En utilisant VS 2017 avec ReSharper 2017.1.2 ici.

Tout d'abord, assurez-vous de ne pas perdre de temps en supposant que votre problème est lié à ReSharper. Il est facile de supposer que quelque chose ne va pas avec ReSharper si vous utilisez ses fonctions de test unitaire, y compris Unit Test Explorer . Ouvrez l' Explorateur de test de Visual Studio dans le menu Test et essayez Exécuter tout . "L'avantage supplémentaire de faire ceci est que la fenêtre de sortie montrera un message d'erreur qui pourrait vous diriger dans la bonne direction.Si vous remarquez que le même ensemble de test ne sont pas exécutés, alors il est sûr de supposer que le problème est avec Visual Studio et non ReSharper.

J'ai fini par supprimer et rajouter l'une des plates - formes de la solution Active , Any CPU , dans Configuration Manager . En procédant ainsi, après avoir enregistré mes modifications et rouvert la solution, tous les tests ont recommencé à s'exécuter.

Je crois qu'il y avait une entrée de configuration inattendue dans le fichier de solution lorsque j'ai ajouté de nouveaux projets et en recréant l'une des plates-formes, elle s'est corrigée. J'ai essayé de différencier mais il était difficile de dire ce qui avait changé pour causer le problème.


Avez-vous ajouté une dépendance DLL récemment? ... comme moi

J'ai juste couru dans le même problème et il était très exaspérant de ne pas avoir la moindre idée dans la fenêtre de sortie de test ou ailleurs pratique.

La cause était extrêmement stupide: j'ai juste ajouté la veille de la dépendance à une DLL externe supplémentaire dans un sous-projet, et l'application principale du projet a bien été construite et exécutée correctement après le changement. Mais mes tests unitaires sont dans un projet frère de l'application principale, et ont donc aussi la dépendance de ce sous-projet modifié où la DLL a été invoquée ... encore, l'emplacement d'exécution du projet de test n'est pas celui de l'application principale! Donc, changer la compilation pour copier la DLL manquante dans le répertoire d'exécution du test a résolu le problème.


J'ai eu exactement le même problème, aucun test n'a été exécuté dans mon test-projet. Comme il s'est avéré que j'avais la mauvaise configuration sélectionnée lors de l'exécution des tests. En le modifiant, vous avez corrigé les problèmes.


Pour moi, le problème était un fichier XML de paramètres NUnit / ReSharper corrompu (en raison d'une panne de courant inattendue).

Pour identifier l'erreur, j'ai démarré Visual Studio avec cette commande :

devenv.exe /ReSharper.LogFile C:\temp\resharper.log /ReSharper.LogLevel Verbose

L'examen du fichier a révélé l'exception suivante:

09:45:31.894 |W| UnitTestLaunch                | System.ApplicationException: Error loading settings file
System.ApplicationException: Error loading settings file ---> System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.Load(String filename)
   at NUnit.Engine.Internal.SettingsStore.LoadSettings()
   --- End of inner exception stack trace ---
   at NUnit.Engine.Internal.SettingsStore.LoadSettings()
   at NUnit.Engine.Services.SettingsService.StartService()
   at NUnit.Engine.Services.ServiceManager.StartServices()
   at NUnit.Engine.TestEngine.Initialize()
   at NUnit.Engine.TestEngine.GetRunner(TestPackage package)
   at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.<>c__DisplayClass1.<RunTests>b__0()
   at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.WithExtensiveErrorHandling(IRemoteTaskServer server, Action action)

Notez que ce n'est pas le fichier app.config du projet de test!

Un rapide googling autour identifié le fichier suivant comme le coupable:

%LOCALAPPDATA%\NUnit\Nunit30Settings.xml

Il existait, mais était vide. La suppression et le redémarrage de Visual Studio ont résolu le problème.

(À l'aide de Visual Studio Professional 2017 v15.3.5 et ReSharper 2017.2.1).


Ma solution:

NUnit 3.2.0 a quelques problèmes avec Resharper - downgrade à 2.6.4:

update-package nunit -version 2.6.4

Si vous utilisez xUnit , j'ai résolu le problème lors de l'installation xunit.running.visualstudio paquetage xunit.running.visualstudio . (utilise actuellement xUnit 2.3.1 et VS17 Enterprise 15.3.5 )


Provoqué par le fichier App.Config manquant (non corrompu). L'ajout de nouveau (Ajouter -> Nouvel élément ... -> Fichier de configuration de l'application) l'a corrigé.


Pour moi, un test a créé cette erreur et il s'est avéré que j'avais involontairement ignoré le test. Sur la gauche de l'écran, où vous cliquez pour mettre un point d'arrêt, vous pouvez remarquer que votre test est configuré pour être ignoré (il y a une icône Microsoft pour l'indiquer). J'ai activé le test et l'erreur est partie.


J'ai eu le même problème. Le coupable était une référence externe n'étant pas compatible avec mes paramètres de construction de projet. Pour résoudre, j'ai fait un clic droit sur le projet-> properties-> build-> Platform Target-> passer de n'importe quel CPU à x86.

Le fichier * .dll avec lequel je travaillais était System.Data.SQLite. Ce * .dll particulier est codé en dur pour une opération 32 bits. Le paramètre "Any CPU" a tenté de le charger en 64 bits.







resharper