Migrate test runner from ReTestItems to standard GROUP-based includes #1030
+163
−23
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
test/testitem_compat.jlshim that provides@testsetup/@testitemmacros, using SafeTestsets-style module isolationtest/runtests.jlto use GROUP-based file inclusion (same pattern as OrdinaryDiffEq.jl)ReTestItemsandHwlocfrom Project.tomlThis resolves CI issues like "Package ReTestItems not found" errors while preserving all existing tests unchanged. The
@testitem/@testsetupannotations are kept in test files so the VSCode Julia extension can still discover tests.Design details
@testsetup module Name ... end: Evaluates the module at Main scope. Exports make names available viausing.@testitem "name" [tags=...] [setup=[...]] begin ... end: Creates an isolated module inside a@testsetblock, automatically injectingusing Test,using NeuralPDE, andusing ..SetupModulefor each setup module. WhenGROUP != "all", items whose tags don't match the current group are skipped (matching ReTestItems' tag-filtering behavior).What does NOT change
Test plan
Verified locally on 4 representative test groups:
GROUP=QA— Aqua + ExplicitImports (catches import issues)GROUP=NNPDE2— direct_function_tests + additional_loss_tests (verifies tag filtering skips untagged items)GROUP=AdaptiveLoss— adaptive_loss_tests (verifies@testsetupmodule mechanism)GROUP=DGM— dgm_tests (verifiesinclude("burger_reference_data.jl")resolution in@eval'd modules)🤖 Generated with Claude Code