Skip to main content

Start here

ProtoTest is an integration testing foundation for .NET 8, 9 and 10. The integrations a suite needs share one host, one context per test, one lifecycle and one trace, so a single test can write through REST, read back through GraphQL and check the database on the way.

Browse by task​

If you want to…Read
understand how it fits togetherFoundation
test an APIREST, GraphQL
test a UIWeb
stop hand-writing test dataData
know what your suite missesCoverage
debug a failure from CIProtoTrace
point a coding agent at a failing runAgent workflows
keep traces and reports in CIContinuous integration
add your own integrationExtending ProtoTest

What it is made of​

  • Clients such as Proto.Context.Rest(), .GraphQL(), .Web() and .Data(), sharing the test's context.
  • Attributes that hold reusable setup, such as a tenant or a signed-in user, and clean it up.
  • Shape assertions that compare what matters in a response and report every mismatch at once.
  • ProtoTrace, a portable .prototrace file with each test's phases, operations, checks and files, plus coverage collectors for OpenAPI and GraphQL.
  • Runner packages for xUnit, NUnit, MSTest and TUnit.

See it in a real suite​

Examples in these docs come from Northstar.ProtoTest, which tests the multi-tenant Northstar sample app across API, messaging, browser, database and workbook boundaries.

OpenCSMS, an independent EV charging platform, is the full product demo: its suite runs against containers, an Aspire AppHost and a published stack, with faults injected on purpose. The Level 5 lessons walk through it.

The OpenCSMS stations screen listing three stations and their charge points.