56 votes

Comment faire pour exécuter tous les tests de Code de Visual Studio

La dernière version de VS Code déjà fournit un moyen facile de l'exécution d'un test unique comme indiqué sur Tyler Long de la réponse à la question de Débogage xunit tests .NET de Base et le Code de Visual Studio.

Cependant, je suis à la recherche comment puis-je exécuter tous les tests contenus dans une suite de test de la classe dans VS Code (sans debug)?

La seule façon que j'ai trouvée a été l'ajout d' launch.json d'une configuration spécifique, comme le suivant, mais que je ne peux exécuter en debug (je tiens à exécuter sans débogage):

{
  "name": ".NET Core Xunit tests",
  "type": "coreclr",
  "request": "launch",
  "preLaunchTask": "build",
  "program": "/usr/local/share/dotnet/dotnet",
  "args": ["test"],
  "cwd": "${workspaceRoot}/test/MyProject.Tests",
  "externalConsole": false,
  "stopAtEntry": false,
  "internalConsoleOptions": "openOnSessionStart"
}

73voto

Jun Han Points 3854

Il y a un moyen beaucoup plus facile à exécuter tous les tests:

  1. Installer le .NET de Base de l'Explorateur de tests extension
  2. Ouvrir un .NET de Base d'un projet de test de VS Code, ou un ensemble dotnet-test-explorer.testProjectPath sur le chemin de dossier de .NET de Base d'un projet de test en settings.json
  3. Dans .NET de l'Explorateur de tests de la vue Explorateur, tous les tests seront détectés automatiquement, et vous êtes en mesure d'exécuter tous les tests ou test

.NET Test Explorer

21voto

Nate Barbettini Points 26922

Vous pouvez exécuter tous les tests dans un projet en exécutant dotnet test sur le terminal. C'est pratique si vous avez déjà le terminal ouvert, mais vous pouvez l'ajouter dans le code de Visual Studio ainsi.

Si vous appuyez sur Cmd-Maj-P pour ouvrir la Palette de Commande et tapez "test", vous pouvez lancer le lancer le Test de la Tâche de commande. Par défaut, ce n'est pas faire n'importe quoi, mais vous pouvez modifier tasks.json dire comment exécuter dotnet test pour vous:

les tâches.json

{
  "version": "0.1.0",
  "command": "dotnet",
  "isShellCommand": true,
  "args": [],
  "tasks": [
    {
      "taskName": "build",
      "args": [ ],
      "isBuildCommand": true,
      "showOutput": "silent",
      "problemMatcher": "$msCompile"
    },
    {
      "taskName": "test",
      "args": [ ],
      "isTestCommand": true,
      "showOutput": "always",
      "problemMatcher": "$msCompile"
    }
  ]
}

Ces deux définitions de tâches permettra de relier les Exécuter en Tâche de Construire et Exécuter une Tâche de Test des commandes dans le Code de Visual Studio à l' dotnet build et dotnet test, respectivement.

15voto

severecci Points 103

Pour construire sur GraehamF réponse, la configuration requise, en tasks.json pour dotnet 2.0 est différent.

{
"version": "2.0.0",
"tasks": [
    {
        ...
    },
    {
        "label": "test",
        "command": "dotnet",
        "type": "shell",
        "group": "test",
        "args": [
            "test",
            "${workspaceFolder}/testprojectfolder/testprojectname.csproj"
        ],
        "presentation": {
            "reveal": "silent"
        },
        "problemMatcher": "$msCompile"
    }
]

J'ai constaté que lorsque Visual Studio et VS Code sont tous les deux installés, en mettant la csproj de référence dans la commande de la propriété (comme dans GraehamF réponse) a entraîné dans Visual Studio ouvert plutôt que les tests en cours d'exécution à l'intérieur de VS Code.

(J'aurais mis cela dans un commentaire, mais je n'ai pas assez de points de réputation.)

1voto

GraehamF Points 670

Similaire à @Nate Barbettini réponse, mais pour .Net de Base Standard 2.0 (netcoreapp2.0).

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "test",
            "command": "dotnet test path/to/test-project.csproj",
            "type": "shell",
            "group": "test",
            "presentation": {
                "reveal": "silent"
            },
            "problemMatcher": "$msCompile"
        }
    ]
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X