Integrations map
Compose the capabilities your scenario needs. Every integration joins the same host, context and lifecycle.
Supported packages follow the 1.x compatibility promise. Preview packages work today, but their surface may change before the next minor release. Installation explains the stability tiers and framework requirements.
Protocols
- RESTSupported
One HTTP client per test on IHttpClientFactory, JSON shape assertions, shared authentication, request and response capture, and endpoint coverage.
ProtoTest.Rest - GraphQLSupported
Queries, mutations and subscriptions over WebSocket or SSE, file uploads, shape assertions and schema coverage.
ProtoTest.GraphQL - gRPCSupported
Unary and streaming calls, metadata authentication through the shared
ProtoTest.Grpc - OpenAPISupported
Compares REST traffic and shape assertions against your OpenAPI document and reports the endpoints, responses and properties no test has checked.
ProtoTest.OpenApi
Browsers
- WebSupported
A driver-independent model of pages, components, elements, tables, flows and login, with page coverage and failure artifacts.
ProtoTest.WebProtoTest.Web.PlaywrightProtoTest.Web.Selenium
Messaging
- MessagingSupported
Publish to a destination, then await the message that matters with a predicate and a timeout; an in-memory broker by default.
ProtoTest.Messaging - RabbitMQSupported
A real broker adapter, with a broker owned by the run when it should start one.
ProtoTest.Messaging.RabbitMqProtoTest.Messaging.RabbitMq.Testcontainers - MassTransitPreview
Bridges the messaging surface to an in-process application's MassTransit test harness, and the envelope helper speaks the wire format over any adapter.
ProtoTest.Messaging.MassTransit
Devices (Preview)
- DevicesPreview
Typed device clients, one instance per test, frame exchange and device-protocol coverage.
ProtoTest.Devices - WebSocket transportPreview
Ws:// and wss:// endpoints, or in-process sockets through the application's test server.
ProtoTest.Devices.WebSocketProtoTest.Devices.WebSocket.AspNetCore - MQTT transportPreview
Publish and subscribe against a real broker, with a Mosquitto broker owned by the run.
ProtoTest.Devices.MqttProtoTest.Devices.Mqtt.Testcontainers
Data and files
- Test dataSupported
Deterministic builders with member defaults, factories and provisioners, so a test writes only the values it is about.
ProtoTest.Data - SQLSupported
A database connection each test owns, optional transaction rollback, EF Core contexts on the same connection, and a PostgreSQL server owned by the run.
ProtoTest.SqlProtoTest.Sql.EntityFrameworkCoreProtoTest.Sql.Testcontainers - SheetsPreview
Opens the .xlsx your application generated and asserts on cells, ranges, tables and typed rows, with range coverage.
ProtoTest.Sheets
Applications and runs
- ASP.NET CoreSupported
Runs the application in-process with WebApplicationFactory and hands its HttpClient to the REST and GraphQL clients.
ProtoTest.AspNetCore - Background workersSupported
Runs a generic host with its IHostedServices inside the test process, the way ASP.NET Core runs an API.
ProtoTest.Hosting - AspirePreview
Starts an Aspire AppHost with the run and publishes each resource's endpoint as its application's address.
ProtoTest.Aspire
Fakes
- WireMockPreview
A fake HTTP service per test or per run, with stubs, call verification, trace evidence and stub coverage.
ProtoTest.WireMock
Foundation and support
- FoundationSupported
The host, execution context, hooks, attributes, test ids, tracing and resources every integration plugs into.
ProtoTest.Core - HTTP plumbingSupported
The shared client pipeline and the
ProtoTest.Http - JSON shapesSupported
Partial shape matching and JsonValue constraints; normally transitive.
ProtoTest.Json - ContainersSupported
The run-scoped container base: start once, release once, with TryStart for a run that has no container runtime.
ProtoTest.Testcontainers - Page inventorySupported
Page identities and inventory shared by the browser and ASP.NET Core integrations; normally transitive.
ProtoTest.Web.Pages
Runners
- Test runnersSupported
The same runtime in every runner, with one assertion and attachment model.
ProtoTest.NUnitProtoTest.XunitProtoTest.Xunit3ProtoTest.MSTestProtoTest.TUnit
Tooling and agent
- The CLIPreview
The prototest tool: summary, index, verify and feedback over a trace, a folder of runs or two reports, with no agent in the loop.
ProtoTest.Cli - TracesSupported
The .prototrace archive and the reader that opens it: the run's operations, checks and artifacts in one file.
ProtoTest.Traces - MCP serverPreview
A local stdio server that answers questions about the runs in a repository through four read-only tools.
ProtoTest.Mcp - DiagnosisPreview
The run summary and the failing test's context package, behind the CLI and the MCP tools.
ProtoTest.Diagnosis - VerificationPreview
Compares two reports and records whether a fix regressed a covered unit or changed the specification.
ProtoTest.Verification - FeedbackPreview
The composite action: installs the CLI, uploads the trace, posts the digest and runs the verdict.
ProtoTest.Feedback - AnalyzersPreview
Two Roslyn warnings for test code that compiles but runs outside the lifecycle.
ProtoTest.Analyzers - TemplatesSupported
Dotnet new prototest scaffolds an API and a suite for it, already composed.
ProtoTest.Templates - ReportingSupported
The JSON and HTML report sinks.
ProtoTest.Reporting
Build your stack
Choose a runner and the boundaries your tests cross. Copy the resulting packages into an existing test project.