shopstic / toothpick

A Kubernetes-native, massively parallelized, distributed integration test runner for Scala

Home Page:https://toothpick.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Toothpick

CI License

A Kubernetes-native, massively parallelized, distributed integration test runner for Scala. Currently, it supports ScalaTest, with ZIO Test support coming soon.

Installation

Intellij Runner

Make sure your JAVA_HOME environment variable already points to an OpenJDK 11+ distribution, then run:

curl -L https://raw.githubusercontent.com/shopstic/toothpick/main/scripts/install.sh | bash

Which installs latest version to the default location of ~/.toothpick.

Alternatively, to install a specific version to a specific location:

curl -L https://raw.githubusercontent.com/shopstic/toothpick/main/scripts/install.sh | bash -s VERSION LOCATION

Then add the Toothpick JDK facade to your project:

  • Open the Project Structure dialog via File > Project Structure from the menu bar
  • Under Platform Settings > SDKs, click on the + icon then click Add JDK
  • Choose the path to the jdk directory inside the installed Toothpick directory, which defaults to ~/.toothpick/jdk
  • Rename the newly added JDK to Toothpick

Server

The Helm chart is published as an OCI registry package at ghcr.io/shopstic/chart-toothpick

helm chart save /path/to/charts/toothpick/ ghcr.io/shopstic/chart-toothpick:"${COMMIT_HASH}"

Configuration

Place a .toothpick.conf file at the root of your project directory to override any configuration. See tp-runner-app.conf for reference.

Usage

Run any ScalaTest as usual, then edit its Run configuration dialog. Scroll down to the bottom of the dialog and simply select Toothpick as the JRE. Click Apply then Run.

About

A Kubernetes-native, massively parallelized, distributed integration test runner for Scala

https://toothpick.dev

License:Apache License 2.0


Languages

Language:Scala 82.8%Language:Nix 6.8%Language:TypeScript 3.5%Language:Smarty 3.3%Language:Shell 2.4%Language:Java 1.2%