Contributing to Django Test Runner

February 12, 2026 · View on GitHub

Thank you for your interest in contributing!

Development Setup

Prerequisites

Getting started

git clone https://github.com/Pachwenko/VSCode-Django-Test-Runner.git
cd VSCode-Django-Test-Runner
npm install

Running the extension locally

  1. Open the project in VS Code
  2. Press F5 to launch the Extension Development Host
  3. Open a Django/Python project in the new VS Code window
  4. Test the commands from the Command Palette (Cmd+Shift+P)

Project structure

src/
  extension.ts      Entry point — activate/deactivate, command registration
  testRunner.ts     TestRunner class — orchestrates path building and test execution
  terminal.ts       Terminal management — get or create the test terminal
  config.ts         Configuration — reads VS Code settings, resolves Python path
  parsing.ts        Pure functions — regex parsing, path conversion, root stripping
  test/
    unit/           Unit tests (run without VS Code)
    suite/          Integration tests (require VS Code)
    runTest.ts      Integration test bootstrap

Available scripts

ScriptDescription
npm run compileCompile TypeScript to out/
npm run packageBundle with esbuild for production (dist/)
npm run watchWatch mode with TypeScript
npm run watch:esbuildWatch mode with esbuild
npm run lintRun ESLint
npm run test:unitRun unit tests
npm run test:integrationRun VS Code integration tests
npm run testRun unit tests (alias)

Running tests

Unit tests run directly with mocha and ts-node — no VS Code needed:

npm run test:unit

Integration tests require VS Code to be downloaded and launched:

npm run compile
npm run test:integration

Building a VSIX

npm run package
npx @vscode/vsce package --no-dependencies

This produces a .vsix file you can install locally via Extensions > Install from VSIX....

Pull Request Process

  1. Fork and create a feature branch
  2. Make your changes
  3. Ensure all checks pass: npm run lint && npx tsc --noEmit && npm run test:unit && npm run package
  4. Update CHANGELOG.md if the change is user-facing
  5. Submit a pull request

The CI pipeline will automatically run lint, type checking, tests, and build verification on your PR.