Repository navigation
feat(parsers): ingest Allure results directories - #17
Open
ibrahimsn98 wants to merge 1 commit into
Open
ibrahimsn98 wants to merge 1 commit into
ibrahimsn98 wants to merge 1 commit into
Conversation
`qf <id> collect allure-results/` now uploads Allure 2 results written by any framework's Allure adapter — no reporter change for teams moving off Allure. The directory is ONE input (a ports.PathAwareParser, like .xcresult): a retry is a second *-result.json with the same historyId, so attempts can only be grouped with every file in view. expandDirectories keeps a directory holding *-result.json whole instead of splitting it into its .json files, and the factory detects it by contents (adapters write wherever they are told), plus a single result file by content. Allure is a FORMAT, so it is registered as a passthrough like CTRF: the suite records the producing framework from the `framework` label (pytest -> python, junit5 -> junit, cucumberjvm -> cucumber, …) and takes its category; an unmapped producer falls back to generic, since an unknown category would 400 the launch server-side. Mapped: status (broken -> error), parentSuite > suite > subSuite into ClassName, labels, tags, severity, links, nested steps, parameters honouring masked/hidden, retries/flaky, and attachments — images, videos and Playwright traces through the artifact upload, other small files inline; a source that is not a plain file name in the directory is dropped. Containers are not read yet: a failing fixture already marks its test broken.
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.
Why
Teams leaving Allure TestOps already have Allure adapters wired into every framework. With this they can point
qfat the results directory and change nothing else. It also gives the landing page's Allure TestOps alternative its strongest honest migration claim, which until now it couldn't make.How
generic/allureparser, implemented as aPathAwareParser(the same extension point.xcresultuses). The whole directory is one input because a retry is a second*-result.jsonwith the samehistoryId, so attempts can only be grouped with every file in view.expandDirectorieskeeps a directory that holds*-result.jsonwhole instead of splitting it into its.jsonfiles.uuid,historyId,status,startandstoptogether).frameworklabel (pytest → python, junit5 → junit, cucumberjvm → cucumber, …). An unmapped producer falls back togeneric, because an unknown category would 400 the launch server-side.Mapped
brokenandunknownmap to error.parentSuite > suite > subSuite, carried inClassName.parentIndex.maskedkeeps the name but not the value;hiddenis dropped.retryCountis set, and failed-then-passed counts as flaky.--upload-artifacts; other files up to 1 MiB are inlined. Asourcethat isn't a plain file name in the directory is dropped, so../can't read files elsewhere.Not in this PR:
*-container.jsonfixtures. A failing fixture already makes Allure mark its testbroken, so statuses stay correct.Tests
allure-resultsdirectory with passed, failed, broken and skipped tests, a retry, nested steps, every parameter mode, an attachment, and a container,executor.json,categories.jsonandenvironment.propertiesthat must all be ignored.expandDirectoriestest, plus the existing category contract test, which now includesallure.go test ./...,go vetandgofmtall pass.qf e2e collect testdata/allure-results --dry-run --output jsonreads it as one input, labels the launchpython, and reports 5 cases with 1 flaky test.