While it would be nice to have a UI, for those who are looking for an integrated testing environment, it is possible to create tasks to run the tests inside VSCode console.
Here is how I do it. Create tasks.json inside .vscode directory
{
"version": "2.0.0",
"tasks": [
{
"label": "Run test current file",
"type": "shell",
"command": "mix",
"args": [
"test",
"${relativeFile}"
],
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "new"
}
},
{
"label": "Run test current line",
"type": "shell",
"command": "mix",
"args": [
"test",
"${relativeFile}:${lineNumber}"
],
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "new"
}
},
{
"label": "Run all tests",
"type": "shell",
"command": "mix",
"args": [
"test"
],
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "new"
}
},
{
"label": "Lint",
"type": "shell",
"command": "mix credo",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "new"
}
}
]
}
And then create keybindings (by using a keybindings.json file inside .vscode or configure globally inside VSCode).
[
{
"key": "ctrl+i",
"command": "workbench.action.tasks.runTask",
"args": "Run test current file"
},
{
"key": "ctrl+u",
"command": "workbench.action.tasks.runTask",
"args": "Run test current line"
},
{
"key": "ctrl+t",
"command": "workbench.action.tasks.runTask",
"args": "Run all tests"
},
{
"key": "ctrl+l",
"command": "workbench.action.tasks.runTask",
"args": "Lint"
}
]


















