Test Explorer UI VSCode

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"
  }
]
1 Like