testeador 0.0.1
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 withpackage:test, whilerun(args)runs them as a standalone CLI / compiled binary with tag and flow filtering, fail-fast, cURL logging, and stack traces. Flowtagsforward togroup()sodart test --tags <t>filters consistently with the CLI's--include-tags/--exclude-tags. - Zone-independent assertions. Exports its own synchronous
expectplus thepackage:matchermatchers, so the same flow asserts correctly under bothTesteador.run()(CLI) andregisterWithDartTest()— noOutsideTestExceptionin 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
testeadorexecutable 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 behindTESTEADOR_MCP_ENABLE_MULTIDEV=1). Ships scaffolding templates and project docs as MCP resources, plusscaffold_suiteanddiagnose_failureprompts.testeador discover— lists captured tests from build_runner manifests and scaffolds aTestFlowfrom 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 purepatrolCommandFor) 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 insnapshotComposite. Web e2e requires Node +patrol_cli4.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.