Skip to content
CAI
Software that uses CAICheck a score

monix/minitest

59.4

Adequate · 20 September 2026

982

lines of production code

Scala

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Minitest is a lightweight testing framework for the Scala ecosystem, supporting Scala 2, Scala 3, Scala.js, and Scala Native. It provides a simple API for defining synchronous and asynchronous test suites, along with property-based testing integration via ScalaCheck. The system includes sbt integration for seamless execution, suite lifecycle hooks, and compile-time assertions with precise source location reporting.

Features

Initial release of Minitest 2.9.0 with Dotty support

This commit introduces the initial version of the Minitest testing framework, establishing the project structure and documentation for version 2.9.0. The framework is cross-compiled for Scala 2.12, 2.13, and Scala 3.0.0-M1 (Dotty), as well as Scala.js 1.x. It provides a mini testing API including simple and parameterized test suites, asynchronous test support via \testAsync\, and optional integration with ScalaCheck for property-based testing. The release also includes assertions like \intercept\, \assertDoesNotCompile\, and suite-level setup/teardown hooks.

(repo-wide) · high confidence

New sbt testing integration for Minitest

Minitest now provides an sbt testing framework implementation, allowing users to run Minitest suites directly within the sbt test environment. This change introduces the \Framework\, \Runner\, and \Task\ classes that implement the \sbt.testing\ interfaces, enabling sbt to discover and execute Minitest test suites (specifically those extending \AbstractTestSuite\) as standard sbt tests.

shared/src/main/scala/minitest/runner · high confidence

ScalaCheck integration for property-based testing

The \laws\ module now includes a \Checkers\ trait that integrates Minitest with ScalaCheck, allowing users to write property-based tests. This trait provides \check\ methods for properties with 1 through 6 arguments, automatically converting functions into ScalaCheck properties and handling assertion failures via Minitest's failure mechanism.

laws · high confidence

Behavioural changes

1 commit (0 fixes) modifying project/.gnupg

A change to existing behaviour in project/.gnupg — 1 commit, 2 files.

project/.gnupg · medium confidence · unverified

Added Scala 3 macro implementations for compile-time assertions and source location

The library now includes native Scala 3 macro implementations for \assertDoesNotCompile\ and \SourceLocation\ in the \shared/src/main/scala-3\ directory. These new files provide the Scala 3 equivalents of the existing Scala 2 macros, enabling users to run tests and capture source location information when using Scala 3.0.0-M2 and later.

shared/src/main/scala-3 · high confidence

Introduces suite lifecycle hooks and improved test result reporting

The test framework now supports \setupSuite\ and \tearDownSuite\ hooks, allowing users to run initialization and cleanup logic once for an entire suite of properties rather than per individual test. Additionally, test results now include source location information (file name and line number) in their formatted output, and the framework uses a custom \Void\ type to detect when tests accidentally return non-Unit values, providing clearer error messages for such cases.

repository · high confidence

Minitest API restructured for Scala Native and reflective instantiation

The minitest API has been refactored to support Scala Native and improve portability. The core assertion logic is now consolidated in the new \Asserts\ trait, which requires an implicit \SourceLocation\ for all assertion methods to provide precise failure reporting. A new \AbstractTestSuite\ trait has been introduced, annotated with \@EnableReflectiveInstantiation\ from \portable-scala-reflect\, enabling runtime class discovery necessary for Scala Native compatibility. Additionally, new exception types (\AssertionException\, \UnexpectedException\, etc.) and utility objects (\Utils\, \OurException\) have been added to the \minitest.api\ package to handle test outcomes and pattern matching more robustly.

shared/src/main/scala/minitest/api · high confidence

Test coverage

Added SimpleTestSuite and TestSuite base traits; Added test coverage for new and existing assertion features.

Dependencies

Upgrade to Scala 3.8.3 and ScalaCheck 1.19.0

The build configuration has been updated to support Scala 3.8.3 alongside Scala 2.12.21 and 2.13.18, enabling users to compile the library against the latest Scala 3 release. Additionally, the dependency on ScalaCheck has been upgraded to version 1.19.0 in the laws module, providing access to the latest property-based testing features.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 59.

Lenses

  • Code Health 94
  • Architecture 69
  • Maturity 56
  • Readiness 58
  • Security 58

Changes since last survey

  • 300 commits — 275 feature/other, 25 fixes

By area

  • (root) — 133 commits
  • (repo) — 87 commits
  • project/plugins.sbt — 31 commits
  • shared/src — 24 commits
  • .circleci/config.yml — 10 commits
  • project/build.properties — 7 commits
  • .github/workflows — 4 commits
  • project/.gnupg — 2 commits
  • laws/shared — 1 commit
  • native/src — 1 commit

Notable commits

  • fix: Attempt fix hook
  • fix: Attempt fix hook
  • fix: Attempt fix hook
  • fix: Attempted fix of build.sbt, fill SourceLocationTest
  • fix: Fix
  • fix: Fix #27: Replace TestUtils with portable-scala-reflect.
  • fix: Fix 2.13.0-M5 compiler options
  • fix: Fix README example suite
  • fix: Fix build
  • fix: Fix build
  • fix: Fix build
  • fix: Fix build.sbt url
  • fix: Fix dependencies
  • fix: Fix freaking Travis build
  • fix: Fix laws-legacy
  • fix: Fix link to Simple/TestSuite in readme
  • fix: Fix output and prepare 2.3.2
  • fix: Fix test message and prepare new release
  • fix: Fix workflows
  • fix: Merge pull request #24 from xuwei-k/fix-2.13
  • …and 280 more

Architecture

  • 0 containers · 2 bounded contexts · 0 dependency edges (baseline)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

monix/minitest was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 903dfa3bdb08fc5adbd8cf90b546094a03fb329e — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.