Skip to content
CAI
Software that uses CAICheck a score

Freymaurer/Fable.Pyxpecto

68.5

Adequate · 3 October 2026

938

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Fable.Pyxpecto is a multi-platform unit testing framework that allows developers to write test suites in F\# and compile them to Python, JavaScript, TypeScript, and .NET. It provides a unified DSL for defining synchronous and asynchronous tests with features like focused execution and detailed assertion diffs. The system ensures cross-runtime consistency by validating behavior across these distinct environments using a FAKE-based build pipeline.

Features

Initial project structure and multi-language test runner foundation

Establishes the Fable.Pyxpecto library, a F\#-based unit test runner that transpiles to Python, JavaScript, TypeScript, and .NET. The diff introduces the core solution structure, including the main F\# project, a FAKE build system, and a unified test DSL supporting Expecto-style primitives (testList, testCase, async tests) with features like focused and pending tests. It adds a Python entry point (main.py) and configures the Python environment to use the fable-library 5.0.0a20 prerelease, enabling the runner to execute tests across multiple target languages from a single F\# codebase.

(repo-wide) · high confidence

Initial release of Fable.Pyxpecto multi-platform testing framework

Introduces the core source files for Fable.Pyxpecto, a testing library supporting .NET, JavaScript, TypeScript, and Python runtimes. The package provides a DSL for defining synchronous and asynchronous tests with focused and pending states, an assertion module with detailed diff output for strings, and a runner that handles test execution, reporting, and command-line configuration (such as --fail-on-focused-tests and --silent).

src · high confidence

Behavioural changes

Introduce FAKE-based build system with native Python and multi-target test support

The build process has been restructured using the FAKE build tool (BlackFox.Fake), replacing the previous setup with a new project structure in the \build/\ directory. This change introduces native Python testing capabilities via the \uv\ tool, allowing F\# code to be compiled to Python and executed directly. Additionally, the test suite now supports multi-target compilation, enabling tests to be generated and run for JavaScript (via Node.js/Mocha), TypeScript (via tsx), and .NET, alongside the new Python targets. The build also includes parallel execution helpers for improved performance during test runs.

build · high confidence

Introduction of core test model definitions

The Fable.Pyxpecto library now includes a new Model.fs file that defines the fundamental data structures for the testing framework. This introduces types for managing test execution state (Stopwatch), defining test cases (SyncTest, AsyncTest, TestList, TestListSequential) with focus states, and handling test sequencing (Sequential vs Parallel). It also provides the FlatTest record for representing individual test units, an AssertException for error handling, and helper modules for accuracy comparisons (low, medium, high, veryHigh precision) and test failure reporting.

Fable.Pyxpecto · high confidence

Test coverage

Added F\# test suite for validating Fable multitarget support; Added Mocha integration tests for cross-platform compatibility.

Dependencies

Initial project setup with Fable 5 and Python integration dependencies

This change introduces the foundational project structure and dependency configuration for the Fable.Pyxpecto library, enabling F\# code to be compiled to Python for unit testing. The setup establishes central package management via Directory.Packages.props, defining core dependencies including Fable.Core (5.0.0-beta.4), Fable.Python (5.0.0-alpha.20.1), and FSharp.Core (8.0.403). The main library project targets netstandard2.0 and explicitly depends on the fable-library Python package (version \>= 5.0.0a17). Additionally, the configuration includes test infrastructure dependencies such as Expecto (9.0.4), Fable.Mocha (2.17.0), and Mocha (10.2.0) for JavaScript/Node.js test execution, alongside build tooling like Fake (5.23.1) and YoloDev.Expecto.TestSdk (0.13.2).

(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

Score

  • CAI 68 → 68 (+0.9)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 95 → 95 (+0.0)
  • Architecture 96 → 98 (+1.4)
  • Maturity 61 → 61 (+0.0)
  • Readiness 59 → 62 (+2.9)
  • Security 83 → 82 (-1.3)

Resolved (3)

  • Documentation: no architecture or design documentation (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)

New (1)

  • High CVE: [GHSA redacted] (package-lock.json)

Architecture

  • Unchanged — 0 containers · 1 contexts · 0 edges

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

Survey your own repository

Freymaurer/Fable.Pyxpecto 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 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit da9b60fa11fdbdbe9a54e431eeec28db1ace0a0b — the exact code this score is about.
  • Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.