-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
[SR-9133] JUnit output format doesn't work if --parallel not selected #4752
Comments
Comment by Arjun Nayini (JIRA) @aciidb0mb3r - I picked up this ticket and started on it. I found that the `TestRunner` and `ParallelTestRunner` are actually separate `final class` types that aren't tied together by anything. I was thinking I could get this done but would want to refactor those types to adhere to a single protocol (refactor them to look alike) and then add in xunit output for the serial one. Currently it looks like the xunit generator class is just explicitly tied to the parallel test runner. Does this seem like a reasonable approach here? Figured I would ping you since you have the latest commits in that area of the code. |
Comment by Arjun Nayini (JIRA) Actually I need to think about this a bit more. Seems like perhaps a SerialTestRunner type might make things a bit more clear with both ParallelTestRunner and SerialTestRunner encapsulating some set of TestRunners. |
Any news on this? |
It would be nice if this feature/option ( |
Bump for this issue. We're about to enter 2024, would be great to get something as foundational as this fixed. Note, this kind of report is very important for CI and observability integrations. |
Tracked internally as rdar://129450002. (I'm pretty sure it's tracked with an older radar number too, but I can't find it right now.) |
Also, why is the option labeled xunit? It looks like this format is actually based on junit (from Java), while xunit appears to be something that's part of the .NET ecosystem. |
There is an xUnit.net project that is for the .NET ecosystem, but xunit has also been used to refer to a family of testing frameworks (the idea being that the x refers to the language). See Wikipedia. |
The naming of the flag predates me joining the team. For what it's worth, swift-testing does call it JUnit internally. 🤷🏻♂️ |
Bumping this issue. We're approaching 2025, can this fix be prioritized? |
Are we sure this is still an issue? I'm using a nightly toolchain and I just created a simple test project with two XCTest suites and ran:
And then:
|
I am suspicious of your results as Swift Package Manager doesn't know how to scrape results from XCTest when it runs serially. 🤨 |
Yeah looking at the code in SwiftPM I noticed that, but results.xml seems to be being generated by the swiftpm-testing-helper in the default non parallel case, not SwiftPM. You can see yourself by running:
|
The helper tool only knows how to invoke Swift Testing. What you're seeing is the XML output from Swift Testing (which does know how to generate it when tests run serially.) |
Sigh, I had a typo in my command to remove old .xml, I am seeing the behaviour described in the initial report now. |
Seems like this could be implemented with #6861, though that feature is hidden behind an experimental flag, and seems limited to only Darwin today. |
IIRC there were a number of problems with that PR but it's been ages since I looked at it. And yes, the |
Note that |
Additional Detail from JIRA
md5: 7a7f61fc246593e1da18eec9acf288a5
Issue Description:
The JUnit output report should be printed regardless of the setting of --parallel.
Running:
swift test --xunit-output=/tmp/results.xml
doesn't generate a file at /tmp/results.xml.
Running:
swift test --xunit-output=/tmp/results.xml --parallel --num-workers=1
does generate a file at /tmp/results.xml
The text was updated successfully, but these errors were encountered: