Skip to content
| Marketplace
Sign in
Visual Studio Code>Education>RunCaseNew to Visual Studio Code? Get it now.
RunCase

RunCase

Debjit

|
2 installs
| (0) | Free
Run Java, Python, C++ and 30+ languages with one click. Test cases with pass/fail verdicts, parallel inputs, and save to GitHub. A Code Runner alternative.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Runcase – Run Code & Test Cases

Run a file with one click, check it against test cases in the sidebar, and save the solution to GitHub when it passes. Works with Java, Python, C, C++, Rust, Go, TypeScript, JavaScript and 20+ more languages.

Runcase combines what people use Code Runner for (a Run button in the editor) with what they use CPH for (test cases with pass/fail verdicts), and fixes the parts that are painful, such as Java.

Run buttons

Buttons appear in the editor title bar next to VS Code's own Run button, and which ones show depends on the language.

Language Buttons
Java, C, C++, Rust, TypeScript Run, Compile, Compile & Run, Debug
Go Run, Compile, Debug
Python, JavaScript and most others Run, Debug where a debugger exists
  • Run uses the last build if your source has not changed, and builds first if it has.
  • Compile & Run always rebuilds.
  • Compiling happens inside the extension (with a progress notification and errors shown in the sidebar). Then the program runs in the integrated terminal, so you can type input as it runs. Each run starts in a fresh terminal, so a program from the previous run never blocks the next one.
  • Shortcuts: Ctrl+Alt+R runs the file, Ctrl+Alt+T runs all test cases. They differ from Code Runner and CPH, so you can keep all three installed.

Java

Runcase reads your file instead of assuming the class name matches the file name.

  • Finds the class that has main, including nested classes and String... args. If several classes have one, it asks once and remembers the answer (command: Runcase: Choose Java Main Class).
  • Handles package declarations and compiles with the correct source root, so other classes in the same package are found.
  • Builds into a temporary folder, so no .class files land in your project.

Test cases sidebar

Open the Runcase icon in the activity bar. The sidebar works on whichever file you have open.

Tests: for each case, write an input and the expected output. Press Run all and each case gets a verdict.

Verdict Meaning
Accepted Output matches
Wrong Answer Output differs. The first differing line is shown with context
Runtime Error Non-zero exit. Shows stderr and a clickable file:line
Time Limit Ran longer than runcase.timeoutMs
Output Limit Printed more than runcase.maxOutputBytes

Compile errors appear once at the top, with links to the lines.

Explore: add inputs only. Runcase shows the output or error each one produces. Save as test turns an output you trust into an expected answer.

  • Up to 12 cases in each mode.
  • All cases run in parallel against a single build.
  • Long output is cut to a preview. Show all expands it in place, Open in tab opens it in an editor tab with search, and Copy copies all of it. stdout and stderr are always separate.

Your cases are saved

Cases save automatically as you type, so editing your code never loses them. Each case also has a Save button (it shows Saved ✓ when nothing is pending) and there is a Save all button.

One set of cases is shared by every file and every language. That suits solving one problem in several languages, but it means a different problem needs its own cases typed in. Cases are stored in the extension's own storage on your machine, not in your project, so they are not part of your repository.

Save to repo

Save to repo (sidebar footer, editor title bar, or command palette) commits the current file, then pushes. Test cases are not committed.

  • Only that file is committed, even if other changes are staged.
  • Not a Git repository yet? Runcase offers to create one.
  • No remote? It offers to create a GitHub repository (private by default) using VS Code's own GitHub sign-in. Runcase never sees or stores your password or token.
  • Nothing is committed or pushed without you pressing the button and confirming the message.
  • Optional: turn on runcase.git.promptOnAllPass to be offered a save when every test passes.

Languages

Tested before each release: Java, C, C++, Rust, Go, TypeScript, Python, JavaScript.

Configured, community supported: PHP, Ruby, Perl, Raku, Lua, R, Julia, Dart, Groovy, Scala, Kotlin, Swift, Haskell, OCaml, Elixir, Racket, Common Lisp, Crystal, D, Nim, Zig, Fortran, CoffeeScript, F#, Shell, PowerShell, Batch.

Anything else: Runcase reads the code-runner.executorMap setting, so commands you already wrote for Code Runner keep working. Or define a language yourself:

"runcase.languages": {
  "cpp": { "compile": ["g++", "-std=c++20", "-O2", "-o", "${outDir}/prog${exe}", "${file}"] },
  "brainfuck": { "run": ["bf", "${file}"], "extensions": [".bf"] }
}

Variables: ${file}, ${fileDir}, ${fileName}, ${fileBase}, ${outDir}, ${exe}, ${mainClass}, ${srcRoot}.

Requirements

Runcase runs your own compilers, so install what your language needs and make sure it is on your PATH (javac, g++, python3, rustc, go, node, tsc, and so on). If VS Code was started from a launcher that does not see your shell's PATH, start it from a terminal with code .. When a tool is missing, Runcase says which one.

Debug uses the debugger extension for each language (Debugger for Java, Python, C/C++, CodeLLDB, Go) and offers to install it if it is missing. Runcase does not include a debugger of its own. Debug runs in the terminal, so type input there.

Settings

Setting Default
runcase.timeoutMs 5000 Time limit per test case
runcase.parallelism 0 Cases at once. 0 means CPU count minus one
runcase.maxOutputBytes 1048576 Captured output per stream
runcase.compareMode trimTrailing Or exact
runcase.saveBeforeRun true
runcase.useCodeRunnerMap true Use code-runner.executorMap for unknown languages
runcase.languages {} Override or add languages
runcase.git.commitMessage Add ${fileName}${result}
runcase.git.promptOnAllPass false
runcase.git.repoVisibility private For repositories Runcase creates

Known limits

  • Tested on Linux so far, and only with automated tests plus a stand-in for the VS Code API. Running in the integrated terminal on Windows (PowerShell and cmd) and macOS has not been tried on real machines. Please report problems.
  • Times are wall-clock. Cases run in parallel, so numbers are noisy. Set runcase.parallelism to 1 for cleaner timing.
  • No memory measurement.
  • Test cases are shared across files, are not stored in your repo, and cannot be exported or imported yet.
  • Running in the terminal does not print an exit code or time.
  • Cargo and Maven/Gradle projects are not detected. Runcase compiles the single file.
  • C# is not built in. Add it with runcase.languages or code-runner.executorMap.

Privacy

Runcase collects no telemetry. It only contacts GitHub when you create a repository from Save to repo.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft