@@ -127,16 +127,7 @@ jobs:
127127 - name : Run core tests (collect all for testmon)
128128 run : |
129129 # This populates the testmon database for PR workflows
130- uv run python -m pytest --testmon --ignore-glob="*docs*" --ignore-glob="*examples*" --junitxml=testmon-report.xml
131-
132- - name : Testmon test report
133- if : ${{ !cancelled() }}
134- uses : dorny/test-reporter@v2
135- with :
136- name : Testmon Test Results
137- path : testmon-report.xml
138- reporter : java-junit
139- fail-on-error : ' false'
130+ uv run python -m pytest --testmon --ignore-glob="*docs*" --ignore-glob="*examples*"
140131
141132 - name : Save testmon database to cache
142133 uses : actions/cache/save@v4
@@ -184,23 +175,19 @@ jobs:
184175 run : |
185176 uv run coverage run --rcfile='test/coverage.docstring.rc' -m pytest --doctest-modules physicsnemo/ --ignore-glob="*internal*" --ignore-glob="*experimental*" --junitxml=coverage-doctest-report.xml
186177
187- - name : Core test report
178+ - name : Upload core test JUnit XML
188179 if : ${{ !cancelled() }}
189- uses : dorny/test-reporter@v2
180+ uses : actions/upload-artifact@v4
190181 with :
191- name : Coverage Core Test Results
182+ name : junit-coverage-core
192183 path : coverage-core-report.xml
193- reporter : java-junit
194- fail-on-error : ' false'
195184
196- - name : Doctest report
185+ - name : Upload doctest JUnit XML
197186 if : ${{ !cancelled() }}
198- uses : dorny/test-reporter@v2
187+ uses : actions/upload-artifact@v4
199188 with :
200- name : Coverage Doctest Results
189+ name : junit-coverage-doctest
201190 path : coverage-doctest-report.xml
202- reporter : java-junit
203- fail-on-error : ' false'
204191
205192 - name : Save coverage files to cache
206193 uses : actions/cache/save@v4
@@ -231,3 +218,34 @@ jobs:
231218 .coverage
232219 coverage.xml
233220 retention-days : 30
221+
222+ # Stage 4: Generate browsable test reports from JUnit XML
223+ test-reports :
224+ name : Test Reports
225+ needs : [coverage]
226+ if : ${{ !cancelled() }}
227+ runs-on : ubuntu-latest
228+
229+ steps :
230+ - uses : actions/checkout@v4
231+
232+ - name : Download JUnit artifacts
233+ uses : actions/download-artifact@v4
234+ with :
235+ pattern : junit-*
236+
237+ - name : Core test report
238+ uses : dorny/test-reporter@v2
239+ with :
240+ name : Core Test Results
241+ path : junit-coverage-core/coverage-core-report.xml
242+ reporter : java-junit
243+ fail-on-error : ' false'
244+
245+ - name : Doctest report
246+ uses : dorny/test-reporter@v2
247+ with :
248+ name : Doctest Results
249+ path : junit-coverage-doctest/coverage-doctest-report.xml
250+ reporter : java-junit
251+ fail-on-error : ' false'
0 commit comments