Question Comment puis-je exécuter NUnit en mode débogage à partir de Visual Studio?


J'ai récemment construit un framework de test pour un peu de C # sur lequel j'ai travaillé. J'ai NUnit configuré et un nouveau projet dans mon espace de travail pour tester le composant. Tout fonctionne bien si je charge mes tests unitaires de Nunit (v2.4), mais je suis arrivé au point où il serait vraiment utile de fonctionner en mode débogage et de définir des points de rupture.

J'ai essayé les suggestions de plusieurs guides qui suggèrent tous de changer les propriétés de '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 de la console, mais j'ai également essayé d'appeler l'interface graphique. Les deux me donnent la même erreur lorsque j'essaie de déboguer:

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 de Nunit et que c'est là que se déroulent les tests?

Je commence à penser que le problème est peut-être que VS veut exécuter son propre framework de test et c'est pourquoi il ne trouve pas les tests NUnit?

modifier: Pour ceux qui posent des questions sur les montages de test, l’un de mes fichiers .cs du projet TestDSP ressemble à 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 sur le framework de test NUnit, donc il est tout à fait possible que j'ai raté quelques informations cruciales ;-)

Solution finaleLe 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 framework de test, pour autant que je sache. Vous devriez choisir un Ordinaire Projet de bibliothèque de classe C # à la place, puis les instructions de ma réponse sélectionnée fonctionneront.


113
2018-04-17 10:11


origine


Réponses:


J'utilise la même technique que vous essayez Jon, sans l'indicateur / assembly, c'est-à-dire

Start External Program: C:\Program Files\NUnit 2.4.8\bin\nunit.exe

Command line arguments: "<path>\bin\Debug\Quotes.Domain.Tests.dll"

Est-ce que TestDSP.dll contient tous vos TestFixtures?

Comme mon projet de test n’est pas le projet de démarrage de la solution, je lance mes tests en cliquant avec le bouton droit de la souris sur le projet de test et en choisissant Debug -> Start New Instance


44
2018-04-17 10:20



Lorsque je dois déboguer mes tests NUnit, je me connecte simplement à l’application graphique NUnit nunit-agent.exe en utilisant "Debug | Attach to Process" et exécutez les tests depuis l'interface graphique. Tous les points d'arrêt dans mes tests (ou le code qu'ils testent) sont touchés. Est-ce que je comprends mal votre question ou est-ce que cela fonctionnera pour vous?


98
2018-04-17 10:18



Supprimez simplement la ligne qui ressemble à

<ProjectTypeGuids>
    {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
</ProjectTypeGuids>

à partir de votre fichier de projet. Cette ligne dit essentiellement à VS.Net qu’il s’agit d’un projet de test, donc du "projet de test impossible". Pour info, le 1er Guid dit "c'est un test", le 2ème dit "c'est C #". Pour plus d'informations sur ces règles: http://www.mztools.com/Articles/2008/MZ2008017.aspx


20
2018-06-11 10:10



En plus de la réponse fournie par @Justin, voici quelques détails supplémentaires sur NUnit 2.6.

Utiliser NUnit 2.6 pour joindre nunit.exe ou nunit-console.exe et PAS l'agent. La configuration notée par @Justin est légèrement différente. Voici un exemple de nunit.exe.config (identique pour nunit-console.exe.config).

<startup useLegacyV2RuntimeActivationPolicy="true">
  <!-- Comment out the next line to force use of .NET 4.0 -->
  <supportedRuntime version="v2.0.50727" />  
  <supportedRuntime version="v4.0.30319" />
</startup>

Pour que le projet de test .NET 4 obtienne des points d'arrêt, vous devrez commenter ou supprimer la ligne v2.0, comme le suggère le commentaire. Une fois cela fait, j'ai pu déboguer le projet de test .NET 4.0.


18
2018-02-28 22:01



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 les anciennes versions mais vous devrez faire tout ce qui est nécessaire pour SetUpFixture, ou copiez-le dans le test lui-même.)

[SetUpFixture]
public class SetupFixtureClass
{
    [SetUp]
    public void StartTesting()
    {
        System.Diagnostics.Debugger.Launch();
    }
}

Quelle Debugger.Launch() fait que la boîte de dialogue suivante apparaît lorsque vous cliquez sur Exécuter dans NUnit.

JIT Debugger Dialog

Vous choisissez ensuite votre instance de Visual Studio en cours d'exécution avec votre projet ouvert (le second dans ma capture d'écran), puis le débogueur sera joint et tous les points d'arrêt ou exceptions apparaîtront dans Visual Studio.


17
2017-09-10 00:01



Dans Nunit 3.0.1 (J'utilise VS2013), ouvrez le menu principal> Test> Windows> Test Explorer. Ensuite, dans "Explorateur de tests", cliquez avec le bouton droit sur le scénario de test, vous pourriez voir: enter image description here

J'espère que cela t'aides.


9
2018-04-16 14:29



Installer TestDriven.NET, qui est un plugin pour Visual Studio

De là, vous pouvez cliquer avec le bouton droit sur votre test unitaire et cliquer sur Run Tests pour exécuter la suite entière, cliquez avec le bouton droit sur une classe TestFixture pour exécuter uniquement les tests de cette classe ou cliquez avec le bouton droit sur une méthode Test.

Vous avez également la possibilité de tester avec le débogueur, si vous devez établir un point d'arrêt dans vos tests en mode débogage.


6
2018-04-17 10:13



Essayez NUnitit - un complément Open Source Visual Studio pour le débogage des cas de test NUnit

HomePage - http://nunitit.codeplex.com/


6
2018-04-17 10:39



Supprimez ProjectTypeGuids du fichier de projet.


5
2017-10-29 15:05



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 runtime différent de .NET par rapport à NUnit. Vérifiez que le runtime spécifié est spécifié dans votre nunit-console.exe.config / nunit.exe.config (les configurations se trouvent dans le même répertoire que les exe nunit). Spécifiez le moteur d'exécution à l'aide du nœud de démarrage:

<configuration>
    <startup>
       <supportedRuntime version="4.0" />
    </startup>

2
2018-01-16 16:48