Skip to content

kamilkp/vscode-context-test-runner

Repository files navigation

vscode-context-test-runner 🚀

TL;DR

touch bar shot 2017-11-28 at 15 34 48

Execute currently developed unit test or unit tests from current file only with a single tap on the MacBook's TouchBar. This extension is aware of the test file you have currently opened and the test spec you are currently writing.

While terminal and CLI is developer's favorite UI it might get annoying to have to write the same commands over and over again - especially if they are long. If you are a seasoned programmer you probably you've probably tried to make your live easier by coming up with certain aliases or funcions that they you into your ~/.bash_profile - but this solution is also pretty limited.

If you write unit tests you are probably interested in not wasting your time by running ALL suites every time you change/add something to your test. Most of the cases you are interested in running only THIS test - the one you are currently working on.

This is exactly what this extension is for. It formats your test command with any combination of filename (absolute or relative) and test name (for the latter only Python and Javascript are currently supported) and runs it in Visual Studio Code Integrated Terminal.

Features

There are three commands available: test current, test file and test all. You can configure how the test command for each of the three cases is formatted. Note that you can use workspace settings to have different commands for a project written in Python and different for a project written in Javascript.

Command pallette

screen shot 2017-12-01 at 02 53 44

TouchBar

touch bar shot 2017-11-28 at 15 34 48

Those commands open up an Integrated Terminal window (or focus it when one was already opened) and run a propely formatted test command.

Extension Settings

Here is the list of this extension's settings with their default values:

  // Show 'Run current test' option on touch bar
  "context-test-runner.showTouchBarRunTestsFromFile": true,

  // Show 'Run tests from current file' option on touch bar
  "context-test-runner.showTouchBarRunCurrentTest": true,

  // Show 'Run all tests' option on touch bar
  "context-test-runner.showTouchBarRunAllTests": true,

  // Test command. e.g.: 'npm test -- --fgrep {testname};
  "context-test-runner.testCurrentCommand": "echo 'You need to set up your test command for context-test-runner'",

  // Test command. e.g.: 'TEST_FILE={filename.absolute} npm test'
  "context-test-runner.testFromFileCommand": "echo 'You need to set up your test command for context-test-runner'",

  // Test command. e.g.: 'npm test'
  "context-test-runner.testAllCommand": "echo 'You need to set up your test command for context-test-runner'",

Example configurations

Javascript

"context-test-runner.testAllCommand": "npm test",
"context-test-runner.testCurrentCommand": "TEST_PATH=\"{filename.absolute}\" TEST_NAME=\"{testname}\" npm test",
"context-test-runner.testFromFileCommand": "TEST_PATH=\"{filename.absolute}\" npm test"

Note that in case of this example you have to handle TEST_PATH and TEST_NAME environmental variables on your own in your test runner script.

Python

"context-test-runner.testAllCommand": "pytest",
"context-test-runner.testCurrentCommand": "pytest {filename.relative}::{testname}",
"context-test-runner.testFromFileCommand": "pytest {filename.relative}"

Installation

Either install this extension from the Marketplace or clone this repo in ~/.vscode/extensions directory and run npm install there.

Contributions

Feel free to contribute to this extension by submitting a PR to this repository. All PRs are welcome.

About

Run unit tests conveniently directly from the test file you are working on

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published