Comment exécuter tous les tests en code Visual Studio

la dernière version de VS Code fournit déjà un moyen facile d'exécuter un test simple comme indiqué sur Tyler Long's answer à la question déboguer les tests xunit dans .NET Core et Visual Studio Code .

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

le seul moyen que j'ai trouvé était d'ajouter à launch.json un configuration spécifique comme la suivante, mais que je ne peux exécuter qu'en debug (je voudrais l'exécuter sans debug):

{
  "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"
}
21
demandé sur Shaun Luttin 2017-01-31 16:11:16

4 réponses

il y a une façon beaucoup plus facile d'exécuter tous les essais:

  1. Installer .NET de Base de l'Explorateur de tests extension
  2. ouvrir un projet D'essai de noyau .NET dans le code VS, ou mettre dotnet-test-explorer.testProjectPath sur le chemin de chemise du projet D'essai de noyau .NET dans settings.json
  3. dans .net Test Explorer de la vue Explorateur, tous les tests seront automatiquement détectés, et vous êtes en mesure d'exécuter tous les tests ou un certain test

.NET Test Explorer

21
répondu Jun Han 2018-07-16 02:06:36

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.

si vous appuyez sur Cmd - Shift - P pour ouvrir la Palette de commandes et taper" test", vous pouvez exécuter la commande Run Test Task . Par défaut, cela ne fait rien, mais vous pouvez modifier tasks.json dire comment exécuter dotnet test pour vous:

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âche relieront les commandes Run Build Task et Run Test Task dans Visual Studio Code à dotnet build et dotnet test , respectivement.

12
répondu Nate Barbettini 2017-02-01 16:23:08

pour construire sur la réponse de GraehamF, la configuration requise dans tasks.json pour dotnet 2.0 est différente.

{
"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 deux installés, la mise de la référence csproj dans la propriété command (comme dans la réponse de GraehamF) a eu pour résultat L'ouverture de Visual Studio au lieu que les tests soient exécutés dans VS Code.

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

4
répondu severecci 2018-02-09 14:48:19

semblable à la réponse de @Nate Barbettini, mais pour le standard .Net Core 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" } ] }

0
répondu GraehamF 2018-02-02 16:30:00