La última versión de VS Code ya proporciona una manera fácil de ejecutar una sola prueba, como se indica en la respuesta de Tyler Long a la pregunta Depuración de pruebas xunit en .NET Core y Visual Studio Code .
Sin embargo, estoy buscando cómo puedo ejecutar todas las pruebas contenidas en una clase de conjunto de pruebas en VS Code (sin depuración).
La única forma que encontré fue agregando a launch.json una configuración específica como la siguiente, pero que solo puedo ejecutar en depuración (me gustaría ejecutarla sin depuración):
{ "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" }Puede ejecutar todas las pruebas en un proyecto ejecutando dotnet test en la terminal. Esto es útil si ya tiene el terminal abierto, pero también puede agregarlo al código de Visual Studio.
Si presiona Cmd - Shift - P para abrir la Paleta de comandos y escribe "prueba", puede ejecutar el comando Ejecutar tarea de prueba . De forma predeterminada, esto no hace nada, pero puede editar tasks.json para indicarle cómo ejecutar dotnet test por usted:
tareas.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" } ] } Estas dos definiciones de tareas vincularán los comandos Ejecutar tarea de compilación y Ejecutar tarea de prueba en Visual Studio Code con dotnet build y dotnet test , respectivamente.
Hay una manera mucho más fácil de ejecutar todas las pruebas:
dotnet-test-explorer.testProjectPath en la ruta de la carpeta del proyecto de prueba de .NET Core en settings.jsonSimilar a la respuesta de @Nate Barbettini, pero para .Net Core 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" } ] }Para aprovechar la respuesta de GraehamF, la configuración requerida en tasks.json para dotnet 2.0 es diferente.
{ "version": "2.0.0", "tasks": [ { ... }, { "label": "test", "command": "dotnet", "type": "shell", "group": "test", "args": [ "test", "${workspaceFolder}/testprojectfolder/testprojectname.csproj" ], "presentation": { "reveal": "silent" }, "problemMatcher": "$msCompile" } ]Descubrí que cuando tanto Visual Studio como VS Code están instalados, colocar la referencia csproj en la propiedad de comando (como en la respuesta de GraehamF) resultó en la apertura de Visual Studio en lugar de que las pruebas se ejecutaran dentro de VS Code.
(Hubiera puesto esto en un comentario, pero no tengo suficientes puntos de reputación).
Para ejecutar pruebas en Visual Studio (VS) Code, debe agregar un archivo tasks.json al directorio .vscode (si aún no lo tiene). Luego configure su tarea de prueba de la siguiente manera:
{ "version": "2.0.0", "tasks": [ { ... // Other tasks }, { "label": "test", "command": "dotnet", "type": "shell", "args": [ "test", "${workspaceFolder}/TestProjectName/TestProjectName.csproj" ], "group": "test", "problemMatcher": "$msCompile", "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": false } } ] } Cuando haya guardado eso, ejecute el siguiente comando Cmd - Shift - P en Mac o Ctrl - Shift - P en Linux y Windows dentro de la interfaz de VS Code, luego escriba Run Test Task , presione Enter y seleccione test .
La configuración anterior debería funcionar para las versiones más recientes de Insider y Stable de VS Code a partir de abril de 2020 (versión 1.41).