Skip to content

rradczewski/kata-bootstraps

Repository files navigation

Ready-to-go kata bootstrap projects

This repository contains starter projects for running katas in a variety of languages. All projects are using the latest language and framework versions (thanks to renovate) and run on any device straight out of the box using Visual Studio Code and devcontainers.

In the cloud: Select the language from below and click "Open in GitHub Codespace" or "Open in GitPod"

In VisualStudio Code: Select the language from below and click "Open in VisualStudio Code"

In IntelliJ: Click here to clone this repository in IntelliJ (requires Jetbrains Toolbox) and select your language either by opening one of the subfolders as a project or by switching the branch.

Language Resources Test Command Quick Start


Clojure

Clojure Guides
clojure.test Reference
lein test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


C# Dotnet

C# Reference
Dotnet Reference
Fluent Assertions
dotnet test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


DenoJS

Deno Runtime Manual
Deno Standard Library
Deno Test Reference
deno test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Elixir

elixir Reference
ExUnit Reference
mix test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Elm

Guide
Docs
npm test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


F# Dotnet

F# Reference
Dotnet Reference
Fluent Assertions
dotnet test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


gleam

Gleam Documentation
Language Tour
Geeunit Reference
gleam test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Go

Go Reference
Ginkgo Test Runner
Testify Assertions
go test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Haskell

Learn You a Haskell for Great Good! stack test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Java

Java Reference
AssertJ Reference
Mockito Reference
mvn test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Kotlin

Kotlin Reference
Kotest Reference
./gradlew test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


NodeJS

JavaScript Reference
NodeJS Reference
Jest Reference
npm test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


PHP

PHP Getting Started
PHP Language Reference
PHP Language Reference
Packagist (Registry)
composer test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


PureScript

Book
Getting Started
spago test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Python3

Python Reference
PyTest Reference
pipenv run pytest

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


ReScript

ReScript Reference
ReScript Jest Usage
ReScript Jest Interface Definitions
npm run test:watch

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Ruby

Ruby Reference
RSpec Reference
bundle exec rspec

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Rust

Rust Reference
Test Reference
cargo test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Scala2

Scala Documentation
Scala2 Language Reference
Scala Cheatsheet
MUnit Reference
sbt test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Scala3

Scala Documentation
Scala3 Language Reference
Scala Cheatsheet
MUnit Reference
sbt test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


Typescript

TypeScript Reference
NodeJS Reference
Jest Reference
npm test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode


zig

Learn zig
zig Guide
zigings/exercises
Assertions
zig build test

☁️ Open in GitHub Codespace

☁️ Open in GitPod

💻 Open in VSCode

Contributing a bootstrap

The general paradigm of this repository is to create self-contained, minimal starter projects that are least likely to (silently) break in the future and can automatically be kept up-to-date.

Any bootstrap project may be added to this repository, if:

  • The language is not yet present or the test-framework enables a different paradigm than the bootstraps already present for the language (e.g. a cucumber or mutation testing tool, not just junit4 or testng)
  • Dependencies and docker images are well-known and commonly used
    • Avoids using custom Dockerfile-based dev-containers (they will have to be built each time a devcontainer starts)
    • Uses only one testing framework and one assertion library
  • One failing, and one succeeding test exists
  • Version numbers are fixed (so they can be picked up and updated by renovate)

A bootstrap needs to contain a valid .devcontainer.json that configures a container with all appropriate tooling. See any of the existing bootstrap projects for reference.

Other kata bootstraps

  • swkBerlin/kata-bootstraps - A huge collection of kata-bootstraps in plenty of languages with plenty of different frameworks