Как запустить все тесты в Visual Studio Code
Последняя версия VS Code уже предоставляет простой способ запуска одного теста, указанного на Тайлер Лонг, ответить на вопрос Отладка тестов xunit в .NET Core и Visual Studio Code.
Тем не менее, я смотрю, как я могу запустить все тесты, содержащиеся в классе тестового набора в VS Code (без отладки)?
Единственный способ, которым я нашел, - добавить к launch.json
конкретную конфигурацию как следующую, но которую я могу запустить только в отладке (я хотел бы запустить ее без отладки):
{
"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"
}
Ответы
Ответ 1
Вы можете выполнить все тесты в проекте, выполнив dotnet test
на терминале. Это удобно, если у вас уже открыт терминал, но вы также можете добавить его в код Visual Studio.
Если вы нажмете Cmd - Shift - P, чтобы открыть Палитры команд и введите "test", вы можете запустить команду Запустить тестовую задачу. По умолчанию это ничего не делает, но вы можете отредактировать tasks.json
, чтобы сообщить ему, как запустить dotnet test
для вас:
tasks.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"
}
]
}
Эти два определения задачи свяжут команды Запустить сборку и Запустить тестовую задачу в коде Visual Studio на dotnet build
и dotnet test
соответственно.
Ответ 2
Существует намного более простой способ запуска всех тестов:
- Установите расширение .NET Core Test Explorer
- Откройте тестовый проект .NET Core в VS Code или установите
dotnet-test-explorer.testProjectPath
в путь к папке тестового проекта .NET Core в settings.json
- В проводнике .NET Explorer Explorer из обозревателя все тесты будут автоматически обнаружены, и вы сможете запускать все тесты или определенный тест
![test-explorer]()
Ответ 3
Чтобы построить ответ GraehamF, конфигурация, требуемая в tasks.json
для dotnet 2.0, отличается.
{
"version": "2.0.0",
"tasks": [
{
...
},
{
"label": "test",
"command": "dotnet",
"type": "shell",
"group": "test",
"args": [
"test",
"${workspaceFolder}/testprojectfolder/testprojectname.csproj"
],
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
]
Я обнаружил, что, когда установлены Visual Studio и VS Code, размещение ссылки csproj в свойстве команды (как и в ответе GraehamF) привело к тому, что Visual Studio была открыта, а не тесты, выполняемые в VS-коде.
(Я бы поставил это в комментарии, но у меня недостаточно очков репутации.)
Ответ 4
Как и @Nate Barbettini, но для .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"
}
]
}