Skip to content
CAI
Software that uses CAICheck a score

mausch/Fuchu

48.5

Weak · 2 October 2026

1.3k

lines of production code

F#

with C#

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Fuchu is a cross-platform testing framework for F\# and C\# that supports execution in .NET, JavaScript (via Fable), and various CI/CD environments. It provides core testing capabilities including property-based testing with FsCheck, structured result reporting, and compatibility with existing MbUnit and NUnit test suites. The system also includes specialized modules for performance benchmarking with visualization and integration with TeamCity for continuous integration reporting.

How it got here

2012 — Cross-platform expansion and CI integration

8 changes.

The project modernized its build infrastructure by migrating to .NET SDK-style projects and updating dependencies, while significantly expanding its cross-platform capabilities through Fable and C\# support. New features included deep integration with FsCheck for property-based testing, TeamCity CI reporting, and the ability to import and run existing MbUnit and NUnit test suites.

2013–2020 — Testing framework expansion and integration

4 changes.

This period focused on extending the Fuchu test framework by adding support for MbUnit conversion and performance benchmarking via PerfUtil. It also introduced charting capabilities for visualizing performance data and established a dedicated test runner for the Fable compiler environment to ensure robust execution and failure propagation.

Features

Added C\# test project with setup/teardown and FsCheck support

A new C\# test project (Fuchu.CSharpTests) has been added to demonstrate the library's capabilities in C\#. It showcases defining tests using extension methods, composing setup and teardown logic via fixtures and higher-order functions, skipping tests, and integrating with FsCheck for property-based testing. The entry point includes a custom test runner that wraps tests with timeouts and custom logging.

Fuchu.CSharpTests · high confidence

Added charting support for performance test results

Introduced a new Charting module that enables visualization of performance test data. Users can now generate bar charts for specific metrics via the \plot\ function, which filters out failed results and displays session IDs against the measured values, and the \plotMS\ function, which automatically groups test sessions and plots elapsed time in milliseconds. The charts are rendered using FSharp.Charting with a styled grid layout.

Fuchu.PerfUtil.Charting · high confidence

Fuchu 1.2.0-beta-2 release with .NET 8 SDK and Fable 4.27 support

This release updates the Fuchu test library to version 1.2.0-beta-2, targeting the .NET 8 SDK (global.json) and Fable 4.27. It introduces a new Fable test project (Fuchu.FableTests) and a Fable build configuration in the solution, enabling users to run tests in JavaScript environments. The build system is modernized with FAKE and Paket, and the solution now includes additional integration projects for MbUnit, PerfUtil, and TeamCity.

(repo-wide) · high confidence

Integrate FsCheck property-based testing with Fuchu

This change introduces the Fuchu.FsCheck module, which allows users to define FsCheck property-based tests directly within the Fuchu test framework. It provides a \testProperty\ function for F\# and a \FsCheck.Property\ static member for C\# that accepts \Func\ delegates of varying arities (1 to 4 arguments), automatically wrapping the FsCheck runner to map test outcomes to Fuchu's test results. The integration also handles FsCheck's \IgnoreException\ by re-raising it as a test skip/ignore event.

Fuchu.FsCheck · high confidence

Introduce Fuchu to MbUnit test converter

Added a new component in the Fuchu.MbUnit library that converts Fuchu test definitions into MbUnit test structures. This allows users to run their existing Fuchu tests using the MbUnit runner, bridging the two testing frameworks.

Fuchu.MbUnit · high confidence

Introduce Fuchu.PerfUtil integration for performance testing

Adds the Fuchu.PerfUtil library, which integrates the Fuchu test framework with PerfUtil to enable performance benchmarking. This new module provides functions to create performance tests (\perfTest\), compare implementation performance against alternatives (\testPerfImpls\), and track historical performance trends over time (\testPerfHistory\), allowing users to detect performance regressions and optimize code within their Fuchu test suites.

Fuchu.PerfUtil · high confidence

TeamCity integration for Fuchu test runner

The Fuchu.TeamCity module now provides a runner that integrates with JetBrains TeamCity CI/CD. It utilizes the JetBrains.TeamCity.ServiceMessages.Write library to stream test results, supporting the reporting of passed, failed, and ignored tests, as well as handling exceptions and durations.

Fuchu.TeamCity · high confidence

Behavioural changes

Fuchu 1.1.0: MbUnit/NUnit import, structured results, and assembly signing

Fuchu version 1.1.0 introduces the ability to import and run existing MbUnit and NUnit test suites via new Fuchu.MbUnit and Fuchu.NUnit modules, which reflect on test attributes and execute them within Fuchu. The library now provides structured display for test result counts and formats exceptions to be clickable in Visual Studio. Assembly metadata is now generated programmatically via FAKE and signed with a strong-name key, and the public API has been refined for C\# compatibility, including renaming TestResult.Exception to Error and exposing specific modules.

Fuchu · high confidence

Removal of FSharpx.Core XML documentation file

The XML documentation file for the FSharpx.Core library has been removed from the project. This change eliminates the generated documentation source for the library, which previously included summaries for types such as FSharpx.BS and FSharpx.FSharpFunc.

lib · high confidence

Test coverage

Added Fable-specific test runner with non-zero exit code handling; Initial test suite for Fuchu.

Dependencies

Migrate to .NET SDK-style projects and update dependencies

The project has migrated from legacy .NET Framework 3.5 project formats to the modern .NET SDK-style project system, enabling support for .NET Framework 4.5.2 and .NET Standard 2.0 (with .NET Core 2.1 for test projects). This change updates core dependencies, including FSharp.Core to 4.6.2, FsCheck to 2.14.0, NUnit to 3.12.0, and Fable tooling packages (Fable.Core 3.1.6, Fable.Promise 2.1.0, Fable.Fetch 2.2.0). Build tooling dependencies (FAKE) are also updated to version 5.20.3 via Paket.

(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 50 → 48 (-1.1)
  • Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 97 → 98 (+0.9)
  • Architecture 69 → 69 (+0.0)
  • Maturity 35 → 35 (+0.0)
  • Readiness 45 → 45 (+0.0)
  • Security 93 → 79 (-14.7)

Resolved (4)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • redundant comment (Fuchu.CSharpTests/Program.cs)
  • redundant comment (Fuchu.CSharpTests/Program.cs)

New (5)

  • End-of-life runtime: .NET Framework net452
  • End-of-life runtime: .NET netcoreapp2.1
  • Orphaned knowledge (Fuchu/Fuchu.fs)
  • redundant comment (Fuchu.CSharpTests/Program.cs)
  • redundant comment (Fuchu.CSharpTests/Program.cs)

Architecture

  • Unchanged — 2 containers · 0 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

mausch/Fuchu 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 2 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 d4cf1b0d55cf21519ec10c95035e62fb3baa6d9b — 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-351388015767.