Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Add a CI smoke test for the self-locating bootstrap in an isolated child process

Đang mở
#57 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
68/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
php
Lĩnh vực
ci-cd, testing-qa

Hướng nghiên cứu

Start with src/Unit/bootstrap.php and src/Integration/bootstrap.php, then inspect the existing GitHub Actions workflows. Run a smoke test without defining the WPMEDIA_PHPUNIT_* or WP_TESTS_DIR constants, requiring a bootstrap and checking both derived constants. Done means CI runs it on every push, a second bootstrap invocation is safe, and regressions fail loudly.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement Made by AI

🤖 AI-generated — created by an automated pipeline. Review before acting on this.

Context
PR #55 (issue #52) made src/Unit/bootstrap.php and src/Integration/bootstrap.php self-locating: when WPMEDIA_PHPUNIT_ROOT_DIR is not already defined, each bootstrap now require_onces src/BootstrapManager.php and calls BootstrapManager::setupConstants('unit'|'integration') to derive the two WPMEDIA_PHPUNIT_* constants. This is the exact code path that runs when PHPUnit re-executes the bootstrap standalone in an isolated @runInSeparateProcess child.

However, the package's own test suite cannot exercise this new branch because its bootstraps go through Tests/{Unit,Integration}/init-tests.php, which pre-defines the constants first. This means the self-derivation branch is validated today only by manual smoke testing, not by CI. A regression (e.g., a wrong relative path in the require_once, or a change to getRootDir()/setupConstants()) could silently break isolated-child consumers without any CI signal.

Dependencies

  • Issue #52 / PR #55 (the self-locating changes themselves) — should already be merged

What needs to be done
Add a small CI smoke test script (e.g., a standalone PHP script or harness in a dedicated .github/workflows/ step) that:

  1. Does NOT pre-define WPMEDIA_PHPUNIT_ROOT_DIR, WPMEDIA_PHPUNIT_ROOT_TEST_DIR, or WP_TESTS_DIR
  2. Requires the self-locating guard logic from src/Unit/bootstrap.php (or src/Integration/bootstrap.php)
  3. Validates the self-derivation behavior
  4. Consider also testing a synthetic vendor/wp-media/phpunit consumer layout to mirror the real isolated-child scenario

Acceptance Criteria

  • CI step (or new workflow) runs the smoke test on every push
  • Smoke test confirms both WPMEDIA_PHPUNIT_ROOT_DIR and WPMEDIA_PHPUNIT_ROOT_TEST_DIR are defined after bootstrap require
  • No fatal "Undefined constant" errors occur during the smoke test
  • A second invocation of the bootstrap short-circuits (no double-define errors under convertWarningsToExceptions)
  • CI fails loudly if the self-locating behavior regresses

Additional information
This hardens the #52 behavior so it cannot silently regress. It is not a blocker but strongly improves confidence in the isolated-process bootstrap contract for downstream consumers.

Contributes to #30. Follow-up to #52 / PR #55.

Ngôn ngữ chính
PHP
Star
4
Fork
2
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Chúng tôi chưa kiểm tra các tệp thiết lập môi trường của dự án này. Hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của wp-media/phpunit

Tất cả issue của wp-media/phpunit

Issue tương tự

Thêm issue về PHP

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.