fix: support recursive coverage and split postprocessing in pytest_main#1102
Draft
xangcastle wants to merge 1 commit into
Draft
fix: support recursive coverage and split postprocessing in pytest_main#1102xangcastle wants to merge 1 commit into
xangcastle wants to merge 1 commit into
Aspect Workflows / aspect / test (test-e2e-bazel-9)
failed
Jun 11, 2026 in 32s
❌ test //... · Tests failed
❌ Failed · 📅 Thu Jun 11 12:42:56 UTC 2026 · ⏱ 33m 4s · 🧪 Test (failed after 32m 57s) | 🔧 Setup 6.7s
👤 runner · 🖥 runnervmiav63 · 💎 aspect-cli v2026.22.44
📦 204 targets · ⚡ 80,724 of 165,947 actions executed (51% cached) · 🧪 61 of 61 tests executed (0% cached) · 🔧 bazel v9.1.1 test · 🎯 x86_64 · ⚙️ fastbuild
🐙 GitHub Actions
💬 Last update: Bazel test failed (1 test failed)
Details
🎯 Bazel targets (204)
❌ 1 Test Failure
Label | Target Type | Duration -----------------------------+-------------+--------- //cases/uv-no-sdist-754:test | sh_test | 137ms
✅ 60 Tests Passed
Label | Target Type | Duration --------------------------------------------------------------------------+---------------------------------------+--------- //cases/cross-repo-610:test | _py_venv_test | 564ms //cases/firebase-admin-import:test | py_test | 2.4s //cases/firebase-admin-import:test_exec | _empty_test | 47ms //cases/freethreaded-805:test | platform_transition_test | 9.3s //cases/interpreter-features-836:test | container_structure_test | 15.1s //cases/interpreter-provisioning:test | _py_venv_test | 647ms //cases/interpreter-version-541:test_3_10_classic | py_test | 612ms //cases/interpreter-version-541:test_3_10_venv | _py_venv_test | 486ms //cases/interpreter-version-541:test_3_11_classic | py_test | 904ms //cases/interpreter-version-541:test_3_11_venv | _py_venv_test | 579ms //cases/interpreter-version-541:test_3_9_classic | py_test | 1.2s //cases/interpreter-version-541:test_3_9_venv | _py_venv_test | 639ms //cases/pth-namespace-547:test | _py_venv_test | 797ms //cases/pth-namespace-547:test_legacy | py_test | 1.5s //cases/py-library-defaultinfo-891:default_info_no_transitive_srcs_test | _default_info_no_transitive_srcs_test | 96ms //cases/pytest-main-867:test_collection_check | py_test | 3.4s //cases/pytest-main-867:test_direct_pytest_main | py_test | 2.9s //cases/pytest-main-867:test_example | py_test | 2.9s //cases/pytest-main-867:test_multi_src | py_test | 3.3s //cases/pytest-main-867:test_naming_regression | py_test | 2.6s //cases/pytest-mock-530:test_mock_py_test | py_test | 2.6s //cases/pytest-mock-530:test_mock_py_venv_test | _py_venv_test | 2.3s //cases/pytest-subdir-imports:test_subdir_import | py_test | 2.9s //cases/pytest-xdist-integration:test_xdist | py_test | 4.8s //cases/repository-rule-deps-299:all_direct | py_test | 1.2s //cases/repository-rule-deps-299:test | py_test | 585ms //cases/root-dir-paths-538:test_root_dir | sh_test | 206ms //cases/root-dir-paths-538:test_root_dir_venv | sh_test | 406ms //cases/unconstrained-dependencies:get_python_package_version_humble_test | py_test | 3.6s //cases/unconstrained-dependencies:get_python_package_version_main_test | py_test | 2.6s //cases/uv-abi3-compat-853:test_import | _py_venv_test | 680ms //cases/uv-conflict-817:test_a | _py_venv_test | 792ms //cases/uv-conflict-817:test_b | _py_venv_test | 1s //cases/uv-conflict-gte:test_a | _py_venv_test | 784ms //cases/uv-conflict-gte:test_b | _py_venv_test | 274ms //cases/uv-conflict-max-863:test_a | _py_venv_test | 365ms //cases/uv-conflict-max-863:test_b | _py_venv_test | 392ms //cases/uv-conflict-tilde-856:test_a | _py_venv_test | 256ms //cases/uv-conflict-tilde-856:test_b | _py_venv_test | 360ms //cases/uv-console-script-binary:test | sh_test | 3.1s //cases/uv-dep-hashes:test_import | _py_venv_test | 659ms //cases/uv-dep-hashes:test_lockfile_hashless | sh_test | 113ms //cases/uv-deps-650/airflow:airflow | _py_venv_test | 157ms //cases/uv-deps-650/crossbuild:exec_toolchain_resolution_test | sh_test | 128ms //cases/uv-deps-650/extras:extras | _py_venv_test | 1.4s //cases/uv-deps-650/say:say | _py_venv_test | 338ms //cases/uv-include-group:include_group | _py_venv_test | 641ms //cases/uv-legacy-deps-750:googlemaps | _py_venv_test | 462ms //cases/uv-patching-829:test | _py_venv_test | 161ms //cases/uv-platform-filter-844:test | sh_test | 122ms //cases/uv-plus-version:test | _py_venv_test | 952ms //cases/uv-toolchain:test | sh_test | 124ms //cases/uv-whl-install-output-group:test | _py_venv_test | 1s //cases/uv-workspace-789:test | _py_venv_test | 1.2s //cases/venv-bin-scripts-423:test | _py_venv_test | 1s //cases/venv-conflict-608:test_no_venv_conflict | _empty_test | 180ms //cases/venv-internal-symlinks:test_internal_symlinks | _py_venv_test | 1.2s //cases/venv-internal-symlinks:test_internal_symlinks_legacy | py_test | 2.4s //cases/venv-isolated-mode-703:test | _py_venv_test | 1s //cases/windows-crossbuild-837:test | sh_test | 106ms
✅ 73 Targets Built
Label | Target Type ---------------------------------------------------------------------------------------+------------------------------ //cases/cross-repo-610/subrepo_a:foo | py_library //cases/cross-repo-610/subrepo_b:bar | py_library //cases/firebase-admin-import:firebase_importer | py_binary //cases/firebase-admin-import:run_in_exec | genrule //cases/interpreter-features-836:amd64_image | platform_transition_filegroup //cases/interpreter-features-836:amd64_layers | platform_transition_filegroup //cases/interpreter-features-836:image | oci_image //cases/interpreter-features-836:image.digest | jq_rule //cases/interpreter-features-836:image_index_json | directory_path //cases/interpreter-features-836:image_index_json_cp | _copy_file //cases/interpreter-features-836:image_write_entrypoint | _write_file //cases/interpreter-features-836:layers | filegroup //cases/interpreter-features-836:layers.manifest | mtree_spec //cases/interpreter-features-836:layers_default | tar //cases/interpreter-features-836:layers_interpreter | tar //cases/interpreter-features-836:layers_manifests | genrule //cases/interpreter-features-836:layers_packages | tar //cases/interpreter-version-541:expanded_test_3_10.py | expand_template //cases/interpreter-version-541:expanded_test_3_11.py | expand_template //cases/interpreter-version-541:expanded_test_3_9.py | expand_template //cases/oci/py_image_layer/branding:branding | py_library //cases/oci/py_image_layer:image_load_write_tags | _write_file //cases/oci/py_image_layer:image_write_entrypoint | _write_file //cases/oci/py_venv_image_layer:image_load_write_tags | _write_file //cases/oci/py_venv_image_layer:image_write_entrypoint | _write_file //cases/pytest-main-867:test_collection_check.pytest_paths | pytest_paths //cases/pytest-main-867:test_example.pytest_paths | pytest_paths //cases/pytest-main-867:test_multi_src.pytest_paths | pytest_paths //cases/pytest-main-867:test_naming_regression.pytest_paths | pytest_paths //cases/pytest-mock-530:test_mock_py_test.pytest_paths | pytest_paths //cases/pytest-subdir-imports:lib | py_library //cases/pytest-subdir-imports:test_subdir_import.pytest_paths | pytest_paths //cases/pytest-xdist-integration:test_xdist.pytest_paths | pytest_paths //cases/repository-rule-deps-299/direct/directmod:directmod | py_library //cases/repository-rule-deps-299/imported/flat:flat | py_library //cases/repository-rule-deps-299/imported:subdir | py_library //cases/repository-rule-deps-299/toplevel:toplevel | py_library //cases/root-dir-paths-538:check_paths_bin | py_binary //cases/root-dir-paths-538:check_paths_venv_bin | _py_venv_binary //cases/unconstrained-dependencies:get_python_package_version_humble_test.pytest_paths | pytest_paths //cases/unconstrained-dependencies:get_python_package_version_main_test.pytest_paths | pytest_paths //cases/unconstrained-dependencies:print_python_package_version_humble | py_binary //cases/unconstrained-dependencies:print_python_package_version_main | py_binary //cases/uv-console-script-binary:_mkdocs_search | genrule //cases/uv-console-script-binary:_mkdocs_search_binary | _py_venv_binary //cases/uv-console-script-binary:_whoowns_explicit_search | genrule //cases/uv-console-script-binary:_whoowns_explicit_search_binary | _py_venv_binary //cases/uv-console-script-binary:_whoowns_search | genrule //cases/uv-console-script-binary:_whoowns_search_binary | _py_venv_binary //cases/uv-console-script-binary:mkdocs | _py_venv_binary //cases/uv-console-script-binary:whoowns | _py_venv_binary //cases/uv-console-script-binary:whoowns_explicit | _py_venv_binary //cases/uv-deps-650/crossbuild:image_write_entrypoint | _write_file //cases/uv-deps-650/crossbuild:unpack_path | unpack_toolchain_path //cases/uv-deps-650/crossbuild:unpack_path_for_arm64 | unpack_toolchain_path //cases/uv-deps-650/crossbuild:unpack_path_for_arm64_transition | platform_transition_filegroup //cases/uv-deps-650/third_party/cowsay:cowsay | py_library //cases/uv-gazelle-778:_gazelle_python_manifest_pypi_airflow_whls | platform_transition_filegroup //cases/uv-gazelle-778:_gazelle_python_manifest_pypi_crossbuild_whls | platform_transition_filegroup //cases/uv-gazelle-778:_gazelle_python_manifest_pypi_extras_whls | platform_transition_filegroup //cases/uv-gazelle-778:_gazelle_python_manifest_pypi_say_whls | platform_transition_filegroup //cases/uv-gazelle-778:gazelle_python_manifest | _modules_mapping //cases/uv-gazelle-778:gazelle_python_manifest.update | sh_binary //cases/uv-no-sdist-754:pywin32_targets | genquery //cases/uv-platform-filter-844:watchdog_targets | genquery //cases/uv-toolchain:uv_bazel_fork_version | genrule //cases/uv-toolchain:uv_custom_version | genrule //cases/uv-toolchain:uv_legacy_version | genrule //cases/uv-toolchain:uv_mirror_version | genrule //cases/uv-toolchain:uv_version | genrule //cases/venv-conflict-608:app | py_binary //cases/windows-crossbuild-837:windows_arm64_toolchain_deps | genquery //cases/windows-crossbuild-837:windows_x64_toolchain_deps | genquery
⤵️ 70 Targets Skipped
Label | Target Type --------------------------------------------------------------+------------------------------ //cases/oci/py_image_layer:amd64_image | platform_transition_filegroup //cases/oci/py_image_layer:image | oci_image //cases/oci/py_image_layer:image.digest | jq_rule //cases/oci/py_image_layer:image_index_json | directory_path //cases/oci/py_image_layer:image_index_json_cp | _copy_file //cases/oci/py_image_layer:image_load | oci_load //cases/oci/py_image_layer:my_app_bin | py_binary //cases/oci/py_image_layer:my_app_layers | filegroup //cases/oci/py_image_layer:my_app_layers.manifest | mtree_spec //cases/oci/py_image_layer:my_app_layers_default | tar //cases/oci/py_image_layer:my_app_layers_interpreter | tar //cases/oci/py_image_layer:my_app_layers_manifests | genrule //cases/oci/py_image_layer:my_app_layers_packages | tar //cases/oci/py_image_layer:my_app_layers_test | _write_source_file //cases/oci/py_image_layer:my_app_layers_test_listing | genrule //cases/oci/py_image_layer:my_app_layers_test_test | _diff_test //cases/oci/py_image_layer:platform_image | platform_transition_filegroup //cases/oci/py_image_layer:platform_layers | platform_transition_filegroup //cases/oci/py_image_layer:py_image_test | container_structure_test //cases/oci/py_venv_image_layer:amd64_image | platform_transition_filegroup //cases/oci/py_venv_image_layer:amd64_layers | platform_transition_filegroup //cases/oci/py_venv_image_layer:arm64_image | platform_transition_filegroup //cases/oci/py_venv_image_layer:arm64_layers | platform_transition_filegroup //cases/oci/py_venv_image_layer:image | oci_image //cases/oci/py_venv_image_layer:image.digest | jq_rule //cases/oci/py_venv_image_layer:image_index_json | directory_path //cases/oci/py_venv_image_layer:image_index_json_cp | _copy_file //cases/oci/py_venv_image_layer:image_load | oci_load //cases/oci/py_venv_image_layer:my_app_amd64_layers | _write_source_file //cases/oci/py_venv_image_layer:my_app_amd64_layers_listing | genrule //cases/oci/py_venv_image_layer:my_app_amd64_layers_test | _diff_test //cases/oci/py_venv_image_layer:my_app_arm64_layers | _write_source_file //cases/oci/py_venv_image_layer:my_app_arm64_layers_listing | genrule //cases/oci/py_venv_image_layer:my_app_arm64_layers_test | _diff_test //cases/oci/py_venv_image_layer:my_app_layers | filegroup //cases/oci/py_venv_image_layer:my_app_layers.manifest | mtree_spec //cases/oci/py_venv_image_layer:my_app_layers_default | tar //cases/oci/py_venv_image_layer:my_app_layers_interpreter | tar //cases/oci/py_venv_image_layer:my_app_layers_manifests | genrule //cases/oci/py_venv_image_layer:my_app_layers_packages | tar //cases/oci/py_venv_image_layer:platform_image | platform_transition_filegroup //cases/oci/py_venv_image_layer:py_amd64_image_command_test | container_structure_test //cases/oci/py_venv_image_layer:py_amd64_image_content_test | container_structure_test //cases/oci/py_venv_image_layer:py_arm64_image_command_test | container_structure_test //cases/oci/py_venv_image_layer:py_arm64_image_content_test | container_structure_test //cases/unconstrained-dependencies:get_python_package_version | py_library //cases/uv-deps-650/crossbuild:amd64_image | platform_transition_filegroup //cases/uv-deps-650/crossbuild:amd64_layers | platform_transition_filegroup //cases/uv-deps-650/crossbuild:app_bin | _py_venv_binary //cases/uv-deps-650/crossbuild:app_layers | filegroup //cases/uv-deps-650/crossbuild:app_layers.manifest | mtree_spec //cases/uv-deps-650/crossbuild:app_layers_default | tar //cases/uv-deps-650/crossbuild:app_layers_interpreter | tar //cases/uv-deps-650/crossbuild:app_layers_manifests | genrule //cases/uv-deps-650/crossbuild:app_layers_packages | tar //cases/uv-deps-650/crossbuild:arm64_image | platform_transition_filegroup //cases/uv-deps-650/crossbuild:arm64_layers | platform_transition_filegroup //cases/uv-deps-650/crossbuild:crossbuild_compile_pyc_test | sh_test //cases/uv-deps-650/crossbuild:image | oci_image //cases/uv-deps-650/crossbuild:image.digest | jq_rule //cases/uv-deps-650/crossbuild:image_index | oci_image_index //cases/uv-deps-650/crossbuild:image_index.digest | jq_rule //cases/uv-deps-650/crossbuild:image_index_index_json | directory_path //cases/uv-deps-650/crossbuild:image_index_index_json_cp | _copy_file //cases/uv-deps-650/crossbuild:image_index_json | directory_path //cases/uv-deps-650/crossbuild:image_index_json_cp | _copy_file //cases/uv-sdist-native-build:test | _py_venv_test //cases/uv-whl-install-output-group:iniconfig_install_dir | filegroup //cases/uv-workspace-789/packages/foo:foo | py_library //cases/uv-workspace-789/packages/pi:pi | py_library
🔁 Reproduce
aspect test -- //cases/uv-no-sdist-754:test
# without Aspect CLI
bazel test -- //cases/uv-no-sdist-754:test
Install aspect: docs.aspect.build/cli/install
📎 Artifacts
Artifacts · Test logs · Profile · BEP
⏱️ Task timing
Phase | Description | Duration ------+--------------------------------------------+--------- Setup | Prepare the task environment | 6.7s Test | Run bazel tests (failed during this phase) | 32m 57s ------+--------------------------------------------+--------- Total | | 33m 4s
🧮 Bazel details
📟 Command line · bazel test //...
bazel test \ --experimental_output_paths=strip \ --disk_cache=/home/runner/.cache/bazel-disk \ --test_tag_filters=-skip-on-bazel9 \ --generate_json_trace_profile=1 \ --experimental_profile_include_target_label \ --profile=/tmp/9df9db22-3d11-4bc1-97e6-40182c2d9782.profile.gz \ --color=yes \ --build_metadata=ASPECT_TASK_NAME=Test \ --build_metadata=ASPECT_TASK_ID=test-e2e-bazel-9 \ --build_event_publish_all_actions \ --build_event_binary_file_upload_mode=fully_async \ --build_event_binary_file=/tmp/build-event-out-67e4ddd3-abb9-4d28-883c-508a4325d5c0.bin \ -- \ //...
ℹ️ Invocation details
- Invocation ID:
6e7691fd-2c48-4c26-9440-cca467a598a4 - Command:
test - Bazel version:
9.1.1 - Start time:
Thu Jun 11 12:42:56 UTC 2026 - End time:
Thu Jun 11 13:15:35 UTC 2026 - User:
runner - Host name:
runnervmiav63 - CPU Target:
x86_64 - Mode:
fastbuild - Working directory:
/home/runner/work/rules_py/rules_py/e2e - Workspace directory:
/home/runner/work/rules_py/rules_py/e2e - Server PID:
2807
⏱ Timing
- Elapsed time:
32m 39s - Analysis time:
38.2s - Execution time:
32m 32s - Bazel server time:
1.7 cpu-hours - Executed Tests Time:
1.5 cpu-minutes
📦 Build graph
- Targets: 204 targets (2,188,672 configured, 6,242 aspect applications)
- Actions: 80,724 actions (165,947 created)
- Packages: 1,343 packages loaded
💾 Cache stats
- Actions: 85,223 of 165,947 cached (51%)
- Tests: 0 of 61 cached (0%)
⚡ Actions by mnemonic (20)
Mnemonic | Count | % ----------------------+--------+------ CppCompile | 37,219 | 46.1% Rustc | 16,564 | 20.5% Symlink | 8,892 | 11.0% FileWrite | 2,431 | 3.0% ExecutableSymlink | 2,174 | 2.6% CppArchive | 1,750 | 2.1% RepoMappingManifest | 1,616 | 2.0% RunfilesTree | 1,614 | 2.0% SourceSymlinkManifest | 1,614 | 2.0% CargoBuildScriptRun | 1,497 | 1.8% CppModuleMap | 1,118 | 1.3% CppLink | 925 | 1.1% CopyToDirectory | 779 | 0.9% CcStage0Compile | 555 | 0.6% CppTransitiveArchive | 555 | 0.6% …5 more (1,320 actions)
🏃 Actions by runner (4)
Runner | Count | % ------------------------+--------+------ linux-sandbox · Local | 60,311 | 74.6% internal | 19,744 | 24.4% disk cache hit · Remote | 696 | 0.8% deduplicated · Remote | 24 | 0.0%
🏠 Workspace status (4)
- BUILD_HOST:
runnervmiav63 - BUILD_TIMESTAMP:
1781181782 - BUILD_USER:
runner - FORMATTED_DATE:
2026 Jun 11 12 43 02 Thu
🏷️ Build metadata (2)
- ASPECT_TASK_ID:
test-e2e-bazel-9 - ASPECT_TASK_NAME:
Test
🎛️ Startup options (11)
--connect_timeout_secs=30 --failure_detail_out=/home/runner/.cache/bazel/_bazel_runner/ea5a46adc4ace432824f7d10087e1393/failure_detail.rawproto --idle_server_tasks --max_idle_secs=10800 --noclient_debug --nofatal_event_bus_exceptions --noshutdown_on_low_sys_mem --nowindows_enable_symlinks --output_base=/home/runner/.cache/bazel/_bazel_runner/ea5a46adc4ace432824f7d10087e1393 --output_user_root=/home/runner/.cache/bazel/_bazel_runner --write_command_log
🎛️ Command options (22)
--build_event_binary_file=/tmp/build-event-out-67e4ddd3-abb9-4d28-883c-508a4325d5c0.bin --build_event_binary_file_upload_mode=fully_async --build_event_publish_all_actions --build_metadata=ASPECT_TASK_ID=test-e2e-bazel-9 --build_metadata=ASPECT_TASK_NAME=Test --color=yes --disk_cache=/home/runner/.cache/bazel-disk --enable_platform_specific_config --experimental_output_paths=strip --experimental_profile_include_target_label --generate_json_trace_profile=1 --host_platform=//:linux_gnu --incompatible_enable_cc_toolchain_resolution --lockfile_mode=off --nobuild_runfile_links --platforms=//:linux_gnu --profile=/tmp/9df9db22-3d11-4bc1-97e6-40182c2d9782.profile.gz --remote_download_outputs=minimal --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 --repo_env=BAZEL_NO_APPLE_CPP_TOOLCHAIN=1 --repository_cache=/home/runner/.cache/bazel-repo --test_tag_filters=-skip-on-bazel9
⏱ Last updated Thu Jun 11 13:15:42 UTC 2026 · 📊 GitHub API quota 101/15,000 (1% used, resets in 56m, throttle 3×)
🚀 Powered by Aspect CLI (v2026.22.44) | Aspect Build · X · LinkedIn · YouTube
Loading