-
Notifications
You must be signed in to change notification settings - Fork 7
Enable running integration specs across multiple test environments #2269
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Created Integration/Specifications folder - Moved all spec folders from DotNET.InProcess to Specifications - Updated spec namespaces from InProcess.Integration to Integration.Specifications - Made specs fixture-agnostic by using IChronicleFixture interface - Updated DotNET.InProcess project to include specs from Specifications folder - Created new Integration/DotNET project for out-of-process testing - Added support files for both projects (ChronicleCollection, Specification, etc.) Co-authored-by: einari <[email protected]>
- Updated dotnet-build.yml to dynamically discover namespaces from Specifications folder - Added matrix dimension for both DotNET.InProcess and DotNET projects - Used type aliases (ChronicleFixture) in GlobalUsings to make specs work with both fixture types - Fixed all spec files to use ChronicleFixture alias instead of concrete types - DotNET.InProcess project builds successfully - DotNET project has expected build errors for in-process-only specs Co-authored-by: einari <[email protected]>
|
Docker Image for this PR: docker run ghcr.io/cratis/chronicle:14.10.3-pr2269.30a1af2 |
|
NuGet packages for this PR, e.g. Chronicle: Use version: 14.10.3-pr2269.30a1af2 |
|
Docker Image for this PR: docker run ghcr.io/cratis/chronicle:14.10.3-pr2269.7acaf2a |
|
NuGet packages for this PR, e.g. Chronicle: Use version: 14.10.3-pr2269.7acaf2a |
|
Docker Image for this PR: docker run ghcr.io/cratis/chronicle:14.10.3-pr2269.c40693a |
|
NuGet packages for this PR, e.g. Chronicle: Use version: 14.10.3-pr2269.c40693a |
Summary
Integration specs can now run against both in-process and out-of-process Chronicle setups. Specs are centralized in a shared folder and automatically discovered by the build pipeline.
Added
Integration/Specificationsfolder containing all shared integration test specificationsIntegration/DotNETproject for out-of-process testing using Chronicle containerdotnet-build.ymlto run tests across both projects and all discovered namespacesChanged
AggregateRoots,Projections,for_EventSequence,for_JobsManager,for_Reactors,for_Reducers) fromDotNET.InProcesstoSpecificationsCratis.Chronicle.InProcess.IntegrationtoCratis.Chronicle.Integration.SpecificationsDotNET.InProcessnow includes specs via<Compile Include="../Specifications/**/*.cs">ChronicleFixturetype alias that resolves to different concrete fixture types per project via GlobalUsingsImplementation pattern:
Note: Some specs using in-process-only features (direct grain access, internal APIs) will only compile/run in
DotNET.InProcess. This is expected.Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.