J'ai récemment construit un framework de test pour un peu de C # sur lequel j'ai travaillé. J'ai installé NUnit et un nouveau projet dans mon espace de travail pour tester le composant. Tout fonctionne bien si je charge mes tests unitaires depuis Nunit (v2.4), mais j'en suis arrivé au point où il serait vraiment utile d'exécuter en mode débogage et de définir des points d'arrêt.
J'ai essayé les suggestions de plusieurs guides qui suggèrent tous de modifier les propriétés 'Debug' du projet de test:
Start external program: C:\Program Files\NUnit 2.4.8\bin\nunit-console.exe
Command line arguments: /assembly: <full-path-to-solution>\TestDSP\bin\Debug\TestDSP.dll
J'utilise la version console là-bas, mais j'ai également essayé d'appeler l'interface graphique. Les deux me donnent la même erreur lorsque j'essaye de démarrer le débogage:
Cannot start test project 'TestDSP' because the project does not contain any tests.
Est-ce parce que je charge normalement \ DSP.nunit dans l'interface graphique Nunit et que c'est là que se déroulent les tests?
Je commence à penser que le problème peut être que VS veut exécuter son propre cadre de test et c'est pourquoi il ne parvient pas à trouver les tests NUnit?
Edit : Pour ceux qui posent des questions sur les appareils de test, l'un de mes fichiers .cs dans le projet TestDSP ressemble à peu près à ceci:
namespace Some.TestNamespace
{
// Testing framework includes
using NUnit.Framework;
[TestFixture]
public class FirFilterTest
{
[Test]
public void Test01_ConstructorTest()
{
...some tests...
}
}
}
... Je suis assez nouveau sur C # et le framework de test NUnit, il est donc tout à fait possible que j'aie manqué des informations cruciales ;-)
Solution finale : Le gros problème était le projet que j'avais utilisé. Si vous choisissez Other Languages -> Visual C# -> Test -> Test Project
... lorsque vous choisissez le type de projet, Visual Studio essaiera d'utiliser son propre cadre de test pour autant que je sache. Vous devez choisir un projet de bibliothèque de classes C # normal à la place, puis les instructions de ma réponse sélectionnée fonctionneront.
la source
Réponses:
J'utilise la même technique que vous essayez Jon, sans le drapeau / assembly, ie
TestDSP.dll contient-il tous vos TestFixtures?
Comme mon projet de test n'est pas le projet de démarrage de la solution, j'exécute mes tests en cliquant avec le bouton droit sur le projet de test et en choisissant Déboguer -> Démarrer une nouvelle instance
la source
/run
à vos * arguments de ligne de commande qui commenceront automatiquement à exécuter des tests ... J'ai également tout résumé (en utilisant des images) dans mon article de blog .<supportedRuntime version="v2.0.50727" />
dans nunit.exe.config.Quand j'ai besoin de déboguer mes tests NUnit, je m'attache simplement à l'application GUI NUnit en
nunit-agent.exe
utilisant "Debug | Attach to Process" et j'exécute les tests à partir de l'interface graphique. Tous les points d'arrêt de mes tests (ou du code qu'ils testent) sont atteints. Suis-je mal compris votre question, ou est-ce que cela fonctionnera pour vous?la source
<startup> <supportedRuntime version="4.0" /> </startup>
.Supprimez simplement la ligne qui ressemble à
à partir de votre fichier de projet. Cette ligne indique essentiellement à VS.Net qu'il s'agit d'un projet de test, donc le "Impossible de démarrer le projet de test". Pour info ici le 1er Guid dit "c'est un test", le 2ème dit "c'est C #". Pour plus d'informations sur ces Guids: http://www.mztools.com/Articles/2008/MZ2008017.aspx
la source
En plus de la réponse fournie par @Justin, voici quelques détails supplémentaires sur NUnit 2.6.
À l'aide de NUnit 2.6, attachez-vous à nunit.exe ou nunit-console.exe et NON à l'agent. La configuration notée par @Justin est légèrement différente. Voici un exemple de nunit.exe.config (idem pour nunit-console.exe.config).
Pour le projet de test .NET 4, pour obtenir des points d'arrêt, vous devrez commenter ou supprimer la ligne v2.0 comme le suggère le commentaire. Une fois que j'ai fait cela, j'ai pu déboguer le projet de test .NET 4.0.
la source
v2.0.50727
ligne lors du débogage des assemblages .NET 2 de VS2005 avec nunit. (Lav4
ligne a empêché le débogueur de VS 2005 de se connecter.)Si vous utilisez NUnit 2.4 ou plus récent, vous pouvez mettre le code suivant dans votre
SetUpFixture
classe. (Vous pouvez le faire avec des versions plus anciennes, mais vous devrez faire tout l'équivalent duSetUpFixture
, ou le copier dans le test lui-même.)Cela
Debugger.Launch()
provoque l'affichage de la boîte de dialogue suivante lorsque vous cliquez sur Exécuter dans NUnit.Vous choisissez ensuite votre instance en cours d'exécution de Visual Studio avec votre projet ouvert (le 2ème dans ma capture d'écran), puis le débogueur sera attaché et tous les points d'arrêt ou exceptions apparaîtront dans Visual Studio.
la source
Dans Nunit 3.0.1 (j'utilise VS2013), ouvrez depuis le menu principal> Test> Windows> Explorateur de tests. Ensuite, dans "Explorateur de tests", cliquez avec le bouton droit sur le cas de test, vous pourriez voir:
J'espère que cela t'aides.
la source
Installez TestDriven.NET , qui est un plugin pour Visual Studio
À partir de là, vous pouvez faire un clic droit sur votre assemblage de test unitaire et cliquer sur Exécuter les tests pour exécuter toute la suite, faire un clic droit sur une classe TestFixture pour exécuter uniquement les tests de cette classe, ou cliquer avec le bouton droit sur une méthode de test pour exécuter uniquement cette méthode.
Vous avez également la possibilité de tester avec le débogueur, si vous avez besoin d'un point d'arrêt dans vos tests en mode débogage.
la source
Essayez NUnitit - un complément Visual Studio open source pour le débogage des cas de test NUnit
Page d'accueil - http://nunitit.codeplex.com/
la source
Supprimez ProjectTypeGuids du fichier projet.
la source
Maintenant avec des images:
File -> Open Project
Sélectionnez votre test
.dll
dans le dossier bin (C:\......\[SolutionFolder][ProjectFolder]\bin\Debug\xxxxTests.dll
)Accédez à Visual Studio
Debug -> Attach to process
(la fenêtre Attacher au processus s'ouvre)Dans la liste, faites défiler vers le bas et sélectionnez
nunit-agent.exe
puis cliquez surAttach
À ce stade, les points d'arrêt de vos tests doivent devenir rouges mûrs (à partir de creux).
Cliquez
Run
surNunit Gui
et vous devriez obtenir votre point d'arrêt ...J'espère que cela vous fera gagner du temps.
la source
Si vous parvenez à faire fonctionner la console / ou l'interface graphique, mais que vos points d'arrêt ne sont pas atteints, cela peut être dû au fait que votre application exécute un environnement d'exécution .NET différent de celui de NUnit. Vérifiez si votre nunit-console.exe.config / nunit.exe.config a le runtime spécifié. (Les configurations résident dans le même répertoire que les exe nunit.) Spécifiez le runtime à l'aide du nœud de démarrage:
la source
Si le chemin du projet contient des espaces, par exemple "Nouveau projet" dans le chemin,
<path>\bin\Debug\New Project\Quotes.Domain.Tests.dll
placez le chemin du projet Option de démarrage -> Arguments de ligne de commande entre guillemets.J'ai passé beaucoup de temps à comprendre cela.
la source
Concernant ce que M. Patrick McDonald a dit
J'ai essayé de postuler pour ma bibliothèque de classes de test mais j'ai eu une erreur concernant le chemin, j'ai donc essayé de supprimer les 'Arguments de ligne de commande', et heureusement cela a bien fonctionné et comme prévu.
la source
Il semble que vous essayez d'utiliser la mauvaise bibliothèque. NUnit ne peut démarrer que si la dll que vous utilisez contient TestFixtures.
+1 sur TestDriven.Net. J'ai eu la chance de l'utiliser plusieurs fois. Vous pouvez télécharger la version personnelle à des fins d'évaluation conformément à la licence sur http://testdriven.net/purchase_licenses.aspx .
la source
J'ai eu la même erreur avec MSTest. J'ai trouvé que dans la fenêtre Sortie du test , certains des tests avaient des ID en double et ne pouvaient pas être chargés. J'ai supprimé tous les tests en double et maintenant j'ai pu exécuter les tests lorsque je démarre le projet.
la source
Il existe également une extension maintenant "Visual NUnit" qui vous permettra d'exécuter les tests à partir de Visual Studio un peu comme la construction dans les poignées du framework de test. Vérifiez-le dans le gestionnaire d'extensions.
la source
Ouvrez Visual Studio ---> votre projet ---> Sélectionnez `` Propriétés '' ---> Sélectionnez `` Déboguer '' -> Sélectionnez `` Démarrer le programme externe '' et définissez le chemin de votre NUnit ici (par exemple: Démarrer le programme externe = C : \ Program Files \ NUnit 2.6.2 \ bin \ nunit.exe) ----> Enregistrer
Après avoir défini cela, cliquez simplement sur Déboguer
la source
Pour moi, la solution était d'adapter le fichier de configuration de l'unité. Pour utiliser nunit avec le framework 4.5-.Net et l'option de construction x64, j'ai dû ajouter une ligne à la balise de démarrage (version d'exécution prise en charge).
Ensuite, je pourrais commencer par un clic droit sur le débogage Testproject -> Démarrer une nouvelle instance. Avant, je devais à nouveau attacher manuellement le projet au processus.
Mes propriétés de débogage étaient, C: \ Program Files (x86) \ NUnit 2.6.4 \ bin \ nunit.exe avec l'argument de l'emplacement du .dll à tester.
Plus d'informations: nunit pour tester avec .NET 4.0
la source
Voyez si cela aide .. Comment ajouter NUnit dans Visual Studio
(RighteousRant) Bien que personnellement je n'aime pas cette approche. Si vous avez besoin d'un débogueur pendant que vous testez votre code, c'est une "odeur" dans la mesure où vous n'avez pas assez de confiance / savez comment votre code fonctionne et avez besoin du débogueur pour vous le dire. TDD devrait vous libérer du besoin d'un débogueur s'il est bien fait. Utilisez «Joindre le débogueur à NUNit» uniquement dans de rares cas ou lorsque vous pataugez dans le code de quelqu'un d'autre.
la source