La méthode d'essai n'est pas concluante: L'essai n'a pas été effectué. D'erreur?

j'ai une classe de test et en dessous j'ai posté un test de l'échantillon à partir 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 enter image description here

j'ai vérifié les références et le projet d'essai a la référence du projet principal. Une idée de la raison pour laquelle le test ne fonctionne pas ou dire qu'ils n'étaient pas concluants?

Edit 1:

j'ai vu un post ici et j'ai changé L'architecture par défaut de mon test En x64 mais ça ne marche toujours pas.

151
demandé sur Community 2013-08-19 14:03:07

30 réponses

juste au cas où aucune des options ci-dessus ne fonctionnait pour quelqu'un, j'ai corrigé mon instance de cette erreur en remarquant une entrée corrompue dans mon application.Config à cause d'un manque de package nuget dans le projet de test.

116
répondu Chris Pacey 2014-01-27 16:59:58

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

si votre méthode D'essai est asynchrone, elle ne peut être nulle. Il DOIT retourner à la Tâche.

Espère que cela aide quelqu'un :)

38
répondu Krzysztof Skowronek 2016-03-15 15:59:49

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

j'ai juste eu à décocher l'option "assemblages de copies D'ombres en cours de test"

32
répondu Elias Platek 2013-11-27 14:32:42

C'était un Resharper question. Dans Resharper options - > Tools - >MSTEST, Je n'ai pas vérifié L'utilisation de Legacy Runner et maintenant il fonctionne.

20
répondu Cybercop 2017-09-21 12:58:13

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écocher la case "Seulement de construire des projets de démarrage et dépendances" (Options -> les Projets et les Solutions -> Build et Run)
  2. dans le Gestionnaire de Configuration, assurez-vous que le projet de démarrage et le projet D'essai ont été" construits".

la deuxième fois que j'ai frappé ce problème, il était dû à un ampersand dans le chemin de fil au projet où les tests résident. Il fonctionne très bien avec le coureur de test de ReSharper, mais pas celui de dotCover. Retirez l'ampersand du filepath.

C'est un bug confirmé avec dotCover.

13
répondu RubberDuck 2017-05-23 11:54:51

pour moi, simplement le nettoyage et la reconstruction de la solution le fixe.

9
répondu Mike Chamberlain 2013-12-19 22:50:41

pour moi, le problème était un corrompu NUnit/ReSharper paramètres XML-fichier (en raison d'une pénurie d'énergie inattendue).

pour identifier l'erreur J'ai commencé Visual Studio avec cette commande :

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

L'examen du dossier 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 qu'il S'agit de et non de . App.config!

Un "1519200920 rapide" googler autour identifié le fichier suivant que le coupable:

%LOCALAPPDATA%\NUnit\Nunit30Settings.xml

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

(Using Visual Studio Professional 2017 v15.3.5 et ReSharper 2017.2.1).

8
répondu Reyhn 2017-09-28 08:01:39

je viens de régler ce problème aussi. Cependant, aucune des solutions de ce fil n'a fonctionné. Voici ce que j'ai fait...

comme R# ne donnait aucun détail sur les raisons pour lesquelles les choses allaient mal, 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 eu lieu. Cependant, en regardant dans la fenêtre de sortie, j'ai finalement eu un message d'erreur:

une exception est survenue alors qu'on invoquait l'exécuteur testamentaire 'executor: / / mstestadapter/v1': objet de référence non défini à une instance d'un objet.

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

j'avais récemment apporté quelques modifications à la base de données AssemblyInfo.fichier cs lors de la création d'un paquet NuGet. L'un des changements consiste à préciser la valeur "en"de la culture de l'assemblage.

I modifié ceci:

[assembly: AssemblyCulture("")] 

à ceci:

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

C'était ça! C'est ce qui a inexplicablement brisé mes tests unitaires. Je ne comprends toujours pas pourquoi. Mais au moins les choses fonctionnent à nouveau. Après que j'ai inversé ce changement (c.-à-d. remettre la culture à ""), mes tests ont commencé à fonctionner à nouveau.

Espère que ça aide quelqu'un là-bas.

6
répondu mikesigs 2017-05-23 12:34:30

dans mon cas, c'était une erreur que j'ai faite en copiant la chaîne de connexion dans l'application.config.. Je l'avais mis dans la balise de configuration!

m'a pris un moment pour le réaliser... merci VS intellisense.. ou était-ce resharper?

5
répondu Kcats Wolfrevo 2014-04-12 13:45:57

j'ai eu un problème similaire. VS 2010, c# CLR 2 Nunit 2.5.7 , construisez > nettoyer la solution de VS aidé à résoudre ce problème

4
répondu Abdul Jabbar 2014-02-04 21:53:16

dans mon cas, j'ai créé une méthode de test async qui renvoie void . Le renvoi de Task au lieu de void a résolu le problème.

4
répondu Neshta 2015-11-12 13:43:29

Dans mon cas [Test] méthodes étaient juste private . S-h-a-moi

4
répondu pkuderov 2016-01-28 22:36:01

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

je viens de tomber sur le même problème et il était très exaspérant de ne pas avoir d'indice dans la fenêtre de sortie de test ou ailleurs pratique.

la cause était extrêmement stupide: je viens d'ajouter la veille la dépendance à une DLL externe supplémentaire dans un sous-projet, et L'application du projet principal en effet construit et a fonctionné correctement après le changement. Mais les tests de mon unité sont dans un projet frère de la main app, et donc avait trop la dépendance sur ce sous-projet modifié où la DLL a été invoquée... pourtant, l'emplacement d'exécution du projet de test n'est pas celui de L'application principale! Donc changer la construction pour faire la copie de la DLL manquante dans le répertoire d'exécution de test a résolu le problème.

3
répondu berhauz 2014-09-15 08:30:12

j'utilise VS2013, ReSharper 9.1 avec L'extension MSpec de ReSharper et Moq. J'ai connu la même erreur "non concluante".

il s'est avéré que celui de ma simulation de Moq n'a pas été initialisé, seulement déclaré. Ceux qui ont initialisé tous les tests ont recommencé.

3
répondu Espen Ekvang 2015-05-06 09:54:19

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

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

j'Espère que ça aidera quelqu'un

3
répondu RR-Fireball 2015-07-21 20:11:47

dans mon cas, ma méthode d'essai était privée, je l'ai changée en publique et ça a marché.

3
répondu Andrew Burns 2016-04-21 14:56:55

dans mon cas, tous les tests dans certains projets de test dans une solution ont commencé à ne pas fonctionner après que j'ai ajouté de nouveaux projets. Utiliser VS 2017 avec ReSharper 2017.1.2 ici.

tout d'abord, assurez-vous que vous ne perdez pas de temps en présumant que votre problème est lié à ReSharper. Il est facile de supposer qu'il y a quelque chose qui ne va pas avec ReSharper si vous utilisez ses fonctionnalités de test de l'Unité, y compris Unit Test Explorer . Ouvrez Visual Studio Test Explorer sous le Test menu et essayer exécuter tous ". L'avantage de cela est que la fenêtre sortie affiche un message d'erreur qui peut vous diriger dans la bonne direction. Si vous remarquez que le même jeu 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 ré-ajouter un des actif plate-forme de solution , any CPU , dans Configuration Manager . Ce faisant, après avoir enregistré mes modifications et rouvert la solution, tous les tests ont recommencé à fonctionner.

je crois qu'il y avait une entrée de configuration inattendue dans le fichier solution lorsque j'ai ajouté de nouveaux projets et en utilisant la recréation d'une des plateformes, il s'est corrigé. J'ai essayé diffing mais il était difficile de dire ce qui avait changé pour causer le problème.

3
répondu wonster 2017-06-30 12:35:55

j'utilise VS2010, NUnit 2.6.3 (bien que ReSharper interne dit qu'il utilise 2.6.2?), ReSharper 7.7.1 & NCrunch 2.5.0.12 et a été en cours d'exécution dans la même "...le test n'est pas concluant..."avec NUnit, mais NCrunch a dit que tout allait bien. Pour la plupart D'aujourd'hui NUnit & NCrunch étaient en phase d'accord sur les tests qui ont été heureux et qui ont besoin de remaniement, puis quelque chose qui est arrivé que je ne comprends toujours pas, et pendant un certain temps NCrunch a dit que j'ai eu des tests ratés (mais pas passer à travers eux NUnit a commencé à se plaindre de tous mes tests sauf un avec le même message "..le test n'est pas concluant..."que J'ai pu encore une fois franchir jusqu'à un col, bien que NUnit ait continué à montrer que C'était"peu concluant").

j'ai essayé plusieurs des suggestions ci-dessus en vain, et finalement juste fermé VS2010 et rouvert la solution. Voilà, maintenant tous mes tests sont de nouveau heureux, et NCrunch & NUnit rapportent les mêmes résultats à nouveau. Malheureusement, je n'ai aucune idée de ce qui a changé pour les amener à sortir de la synchronisation, mais la fermeture & réouverture VS2010 semble avoir corrigé.

peut-être que quelqu'un d'autre va tomber dans ce et être en mesure d'utiliser cette solution simple (si finalement insatisfaisant car vous ne savez pas ce que la vraie solution est).

2
répondu delliottg 2014-03-24 22:05:30

pour ceux qui sont confrontés à ce problème pour mon projet d'essai .NET Core 2.0 dans le Visual Studio 2017 Community (v15.3 3) . J'ai aussi eu ce bug en utilisant JetBrains ReSharper Ultimate 2017.2 Build 109.0.20170824.131346 - il y a un bug que j'ai posté.

JetBrains conseillé de créer un nouveau projet d'essai à partir de zéro pour le reproduire. Quand j'ai fait cela et que j'ai obtenu des tests qui fonctionnaient bien, j'ai trouvé la raison à l'origine du problème:

  • supprimez ceci de votre fichier *.csproj :
  • Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358} "

quand j'ai fait cela - les tests ont commencé à fonctionner correctement.

2
répondu Dmitry Pavlov 2017-09-07 15:45:41

si vous utilisez xUnit , j'ai résolu le problème d'installation du paquet xunit.running.visualstudio . (Utilisant actuellement xUnit 2.3.1 et VS17 Enterprise 15.3.5 )

2
répondu Alessio Di Salvo 2017-11-09 09:36:44

mon problème était que je n'avais installé que NUnit avec nuget. Je n'avais pas installé NUnit3TestAdapter qui était également nécessaire.

Install-Package NUnit3TestAdapter
2
répondu Mike Olund 2018-05-02 15:43:29

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

finalement j'ai vu que j'avais une inadéquation dans mes espaces de noms du projet d'unité et du projet d'essai d'unité.

le namespace de mon projet d'unité est unité.projet et le projet d'essai a été nommé Unité.projet.tests mais le namespace par défaut du test était le même que l'Unité, les deux étaient unité.projet.

une fois que j'ai mis à jour les namespaces pour qu'ils soient différents (un namespace pour chaque projet) tout a fonctionné!

1
répondu silver 2014-08-03 09:05:35

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

1
répondu thebiggestlebowski 2014-09-29 19:58:25

j'ai eu la même erreur dans VS2013 et Resharper9. Le problème est que j'ai oublié d'annoter la méthode d'essai avec [Test] :) Espérons que cela aide quelqu'un

1
répondu Alex Dee 2015-04-03 13:47:17

j'ai eu ce même problème. Le coupable était une référence externe n'étant pas compatible avec les paramètres de construction de mon projet. Pour résoudre, j'ai cliqué droit sur le Projet - > Propriétés - > construire - > plate-forme cible - > passer de N'importe quel CPU à x86.

Le particulier *.la dll avec laquelle je travaillais était le système.Données.SQLite. Que particulier *.dll est codé pour une opération 32 bits. Le réglage "Any CPU" a tenté de le charger en 64 bits.

1
répondu sapbucket 2015-06-05 16:31:46

j'ai eu exactement le même problème, aucun test n'a été effectué dans mon projet de test. Comme c'est arrivé, j'ai choisi la mauvaise configuration lors de l'exécution des tests. Choisissez à nouveau Debug corrigé les problèmes.

Debug configuration

1
répondu cederlof 2015-08-24 08:35:38

dans mon cas, j'ai référencé 2 projets de mon projet unittest. Les deux projets référencés utilisé une dll avec le même nom, mais avec une version différente.

Je ne l'ai pas remarqué dans Visual Studio. J'ai remarqué l'erreur dans l'Eventviewer.

pour résoudre cela, j'ai utilisé bindingRedirect dans l'application.config de la unittestproject de fixer la dll de la version.

1
répondu Natrium 2016-03-22 14:34:43

ma solution:

NUnit 3.2.0 a des problèmes avec Resharper - downgrade de 2.6.4:

update-package nunit -version 2.6.4
1
répondu David McEleney 2016-04-06 04:41:07

Causés par l'absence (non corrompus) App.Fichier de configuration. Ajout d'un (ajout -> nouvel article... - >Fichier de Configuration de l'Application) corrigé.

1
répondu AnotherFineMess 2016-07-01 13:43:22

dans mon cas a trouvé que le TestCaseSource a un nombre différent d'argument que le paramètre dans la méthode d'essai.

[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 les cas de Divisecases a deux éléments qui devraient être 3 comme méthode de Divisetest a 3 paramètre.

1
répondu Rashmin Javiya 2016-11-03 11:02:35