testeador 0.0.1 copy "testeador: ^0.0.1" to clipboard
testeador: ^0.0.1 copied to clipboard

Sequential integration (contract) test orchestrator for Dart and Flutter CI/CD pipelines, with a built-in MCP server.

Changelog #

All notable changes to this project are documented here. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.0.1 #

Initial public release. A sequential integration (contract) test orchestrator for Dart and Flutter CI/CD pipelines, with a built-in MCP server.

Orchestration #

  • Dual-mode execution. registerWithDartTest() integrates flows with package:test, while run(args) runs them as a standalone CLI / compiled binary with tag and flow filtering, fail-fast, cURL logging, and stack traces. Flow tags forward to group() so dart test --tags <t> filters consistently with the CLI's --include-tags / --exclude-tags.
  • Zone-independent assertions. Exports its own synchronous expect plus the package:matcher matchers, so the same flow asserts correctly under both Testeador.run() (CLI) and registerWithDartTest() — no OutsideTestException in standalone mode.
  • Public filterFlows(flows, options). Flow include/exclude logic is a top-level function, so external runners compute the exact set of flows the orchestrator executes.
  • Core building blocks: Actor, Fixture<T>, TestStep, TestFlowLasting, TestFlowTransient, CurlInterceptor, TesteadorOptions.

CLI #

  • Unified testeador executable with subcommands:
    • testeador mcp — Model Context Protocol server exposing every testeador feature to MCP clients (Claude Code, Cursor, etc.): introspection (list_suites, inspect_suite, list_tags, dry_run_suite), execution (run_suite_cli, run_suite_dart_test, compile_suite_exe), scaffolding (scaffold_actor/fixture/flow/suite_runner/dart_test_main), discovery (discover_tests), and multidev (list_devices, boot_fleet, shutdown_fleet, snapshot_fleet, run_patrol_fleet, gated behind TESTEADOR_MCP_ENABLE_MULTIDEV=1). Ships scaffolding templates and project docs as MCP resources, plus scaffold_suite and diagnose_failure prompts.
    • testeador discover — lists captured tests from build_runner manifests and scaffolds a TestFlow from a picked subset.

Multi-device evidence #

  • Evidence API (lib/src/multidev/): TargetDevice (AndroidEmulator, IosSimulator, WebDevice), DeviceFleet, FlutterActor, PatrolRunner, ScreenshotComposer.
  • WebDevice — a driven web target. Drives Patrol-web e2e (patrol test --device chrome … via the shared pure patrolCommandFor) and captures evidence by driving headless Chrome over the DevTools Protocol (pure Dart, no Node): navigates to a route, polls a readiness expression past the SPA splash, settles, then captures. Optional cookies and init scripts seed an authenticated session so guarded routes render real content. The Chrome process and its temp profile are always cleaned up. Lets a fleet place a logged-in web admin panel beside mobile sims in snapshotComposite. Web e2e requires Node + patrol_cli 4.x.

Examples #

  • PokéBattle examples exercising real HTTP backends with no mocks: REST (pokebattle_rest) and Serverpod streaming (pokebattle_serverpod), the latter shipping a web admin panel driven end-to-end in real Chrome.
0
likes
130
points
9
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Sequential integration (contract) test orchestrator for Dart and Flutter CI/CD pipelines, with a built-in MCP server.

Topics

#testing #integration-testing #contract-testing #ci #mcp

License

MIT (license)

Dependencies

analyzer, args, build, dio, glob, image, matcher, mcp_dart, meta, path, source_gen, test

More

Packages that depend on testeador