Skip to content

feat: write reports below TestPioneer's artifact directory - #120

Merged
JE-Chen merged 1 commit into
devfrom
feat/testpioneer-artifact-dir
Oct 11, 2026
Merged

JE-Chen merged 1 commit into
devfrom
feat/testpioneer-artifact-dir

Conversation

@JE-Chen

@JE-Chen JE-Chen commented Oct 8, 2026

Copy link
Copy Markdown
Member

Summary

With TEST_PIONEER_ARTIFACT_DIR set, a report asked for under a relative name is written below that directory, and missing folders are created. Without the variable nothing changes.

Why

TestPioneer starts every runner with that variable set to the directory the run's output belongs in (TestPioneer PR #32, docs/artifacts.rst, "Native Support"). A runner that writes its report there needs no artifacts: entry in the workflow and leaves nothing in the working directory. The other half of that contract, a non-zero exit status after a failed action, has been here since PR #118. APITestka has both in its PR #149.

How

utils/generate_report/report_path.py places a relative name below the directory. All fifteen report generators use it (JSON, XML, HTML, JUnit, summary, CSV, cost, CycloneDX, SARIF, service map, Excel, PDF, chart, histogram, Allure), and the path a generator returns is the path it wrote.

An absolute name is used as given, which is what APITestka's load run passes. So are a name that would leave the directory and a directory that cannot be created.

Checks

  • test/test_report_path.py: 22 tests, two of them skipped here for lack of matplotlib and reportlab.
  • Local suite without test/smoke: 1504 passed, 19 skipped. test/test_distributed_health.py was left out: one of its tests, which starts networked workers, failed on the machine it was run on, and it was not compared with an unchanged checkout.

Docs: the three READMEs (Reports), architecture.md §6, docs/updates/.

TestPioneer starts a runner with TEST_PIONEER_ARTIFACT_DIR set to the
directory that run output belongs in. A report asked for under a
relative name is now written below it, for every report generator, and
the path a generator returns is the path it wrote. Without the variable,
and for an absolute name, nothing changes.
@sonarqubecloud

sonarqubecloud Bot commented Oct 8, 2026

Copy link
Copy Markdown

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 20 complexity · 0 duplication

Metric Results
Complexity 20
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@JE-Chen
JE-Chen marked this pull request as ready for review October 11, 2026 08:41
@JE-Chen
JE-Chen merged commit 54af481 into dev Oct 11, 2026
63 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant