feat: Add Allure.TestingPlatform MTP core (MMVP) #554#656
Open
grootstebozewolf wants to merge 3 commits into
Open
feat: Add Allure.TestingPlatform MTP core (MMVP) #554#656grootstebozewolf wants to merge 3 commits into
grootstebozewolf wants to merge 3 commits into
Conversation
Adds an empty packable library `Allure.TestingPlatform` targeting `net8.0` and referencing `Microsoft.Testing.Platform`. This is the foundation for a framework-agnostic Allure adapter that consumes MTP messages and drives `AllureLifecycle`. Framework-specific layers (xUnit.v3, etc.) will sit on top. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Implements `AllureDataConsumer`, an `IDataConsumer` that handles terminal test states (Passed / Failed / Skipped / Error / Timeout / Cancelled) by issuing a single `Schedule -> Start -> Update -> Stop -> Write` sequence on `AllureLifecycle.Instance` under a per-consumer lock. `InProgress` is a no-op for now; timing is therefore approximate and will be addressed by a follow-up that reads `TimingProperty`. `AddAllure()` is provided as an `ITestApplicationBuilder` extension so test hosts opt in with `builder.AddAllure()`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three NUnit tests pin the consumer's IDataConsumer/IExtension surface so refactors of the contract show up as test failures: DataTypesConsumed advertises TestNodeUpdateMessage, IsEnabledAsync returns true, and the extension metadata (Uid / DisplayName / Description / Version) is populated. End-to-end lifecycle assertions will follow once the consumer's mapping grows beyond the current happy path. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Following up on the discussion in #554 and feedback from the closed #654.
This is a very small, reviewable first piece implementing an MTP-first core as suggested by the maintainer.
What’s included
Allure.TestingPlatformpackage (framework-agnostic, targetsnet8.0)AllureDataConsumerimplementingIDataConsumer– handlesTestNodeUpdateMessageand maps terminal states (Passed/Failed/Skipped/Error/Timeout/Cancelled) to Allure lifecycle (Schedule → Start → Update → Stop → Write)TestApplicationBuilderExtensions.AddAllure()extension method for easy registrationIntentional limitations (for follow-up PRs)
.propsauto-registration (manualbuilder.AddAllure()for now)This matches the requested approach: MTP-first, small incremental PRs, and discussion before heavy work.
cc @delatrie
Checklist