• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pirl-unc / hitlist / 25340509518
76%

Build:
DEFAULT BRANCH: main
Ran 04 May 2026 08:02PM UTC
Jobs 1
Files 28
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 May 2026 08:00PM UTC coverage: 71.478%. Remained the same
25340509518

push

github

web-flow
v1.30.35: split integration tests behind a marker — 17:37 → 1:07 (#225)

* v1.30.35: split integration tests behind a marker — ./test.sh 17:37 → 1:07 (#223)

Default ``./test.sh`` now runs ``-m "not integration"`` and skips the 18
tests that exercise the built ``observations.parquet`` corpus. Local
pre-iteration runs drop from ~17min to ~1min (15.7x). ``./test.sh --all``
and ``./deploy.sh`` drop the filter and run the full 634-test matrix
(~20min) so deploys remain safe.

Mechanism:

- Register ``integration`` marker in ``pyproject.toml`` so pytest stops
  warning on the new tag.
- ``conftest.py::pytest_collection_modifyitems`` auto-tags any test that
  takes the ``full_observations_df`` fixture — there are 10 of those
  across the export and resolver tests, and they all need the built
  corpus by definition.
- 8 tests that don't use the fixture but still gate on
  ``hitlist.observations.is_built()`` get an explicit
  ``@pytest.mark.integration`` decorator (4 in test_observations.py
  load_observations filter coverage, 4 in test_export.py species_summary
  coverage). Tests that gate on the OPPOSITE — ``is_built() and skip`` —
  cover the not-built error path and stay unmarked because they're
  near-zero-cost.

CI runtime is unchanged: the GitHub Actions runner has no built corpus,
so the integration tests already self-skipped via the in-test
``is_built()`` guards. The marker just makes the local equivalent
opt-out explicit.

Verified locally:
- ``./test.sh``: 616 passed, 18 deselected, 2 skipped — 1:07
- ``./test.sh --all``: 634 passed, 2 skipped — 19:54

Closes #223.

* test.sh: use bash arrays + exec instead of eval / shift

The previous ``eval pytest ... $MARKER_FILTER ...`` form needed
``eval`` because ``MARKER_FILTER`` carried a quoted ``-m "not
integration"`` value, and the ``for arg in "\$@"; case ... shift``
loop iterated a snapshot of ``\$@`` while mutating the source array.
Both work today but neither composes well with extra pytest args.

R... (continued)

3902 of 5459 relevant lines covered (71.48%)

0.71 hits per line

Jobs
ID Job ID Ran Files Coverage
1 25340509518.1 04 May 2026 08:02PM UTC 28
71.48
GitHub Action Run
Source Files on build 25340509518
  • Tree
  • List 28
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25340509518
  • 1f8d02c0 on github
  • Prev Build on main (#25336096925)
  • Next Build on main (#25355630698)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc