Migrate to SciMLTesting v1.2 (off ReTestItems)#108
Merged
ChrisRackauckas merged 1 commit intoJun 15, 2026
Conversation
Replace the TestItemRunner setup (`@testitem` blocks + `@run_package_tests`) with SciMLTesting's folder-discovery `run_tests()`. Each `@testitem` becomes a self-contained `test/<group>/<name>.jl` running a plain `@testset`, isolated by SciMLTesting's per-file `@safetestset`. - runtests.jl: `using SciMLTesting; run_tests()`. - test_groups.toml: keep the two CI matrix cells with the same versions/os, but rename `All` -> `Core` (SciMLTesting reserves `All` for the Core+groups aggregate, so a literal `All` key collides) and keep `nopre` (in_all=false). GROUP=Core runs the top-level functional + ExplicitImports files on 1/lts/pre; GROUP=nopre runs test/nopre/aqua.jl on 1/lts. Same tests per cell as before. - deps: drop TestItemRunner; add SciMLTesting + SafeTestsets to the test target and compat. Aqua moves into the test/nopre/ sub-env Project.toml. Verified on Julia 1.11: `GROUP=Core` and `GROUP=nopre` both pass (`Testing CurveFit tests passed`). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
Migrates the test suite off TestItemRunner (
@testitemblocks +@run_package_tests) to SciMLTesting v1.2's folder-discoveryrun_tests().ReTestItems/TestItemRunner is the wrong parallelism model for SciML (we parallelize at the CI-matrix level per GROUP via the reusable
grouped-tests.yml), it breaks on new Julia releases, and it causes upgrade churn. This removes it.Changes
test/runtests.jl→using SciMLTesting; run_tests()(folder-discovery mode).@testitem "name" tags=[:G] begin BODY end→ a self-containedtest/<name>.jl(ortest/nopre/<name>.jl) running a plain@testset "name" begin BODY end. SciMLTesting runs each file inside its own@safetestset, so file-level isolation replaces@testitem's module isolation. Each file got explicitusing CurveFit/using Test/ the deps the body references (which@testitemused to provide implicitly).test/test_groups.toml: the two CI matrix cells keep the sameversions/os. The former tag-filter split (GROUP=Allran every@testitemexcept:nopre;GROUP=nopreran only the:nopre-tagged Aqua item) maps to:Core(1/lts/pre) — the top-leveltest/*.jl(all functional fits + the ExplicitImports check).Allis renamed toCorebecause SciMLTesting reservesAllfor the Core+groups aggregate, so a literalAllkey would collide with that reserved name and look for a nonexistenttest/All/folder.nopre(1/lts,in_all=false) —test/nopre/aqua.jl. Aqua is brittle on prereleases, so it stays offpre, exactly as before.TestItemRunner; addSciMLTesting+SafeTestsetsto the test target and[compat].Aquamoves into the newtest/nopre/Project.tomlsub-env.This is behavior-preserving: the same tests run under each GROUP cell, with no assertion changes.
Verification
Ran locally on Julia 1.11:
GROUP=Core— all functional + ExplicitImports files green (Testing CurveFit tests passed).GROUP=nopre—nopre/aqua.jlpasses in its activated sub-env (Testing CurveFit tests passed).Static-verified: every
Project.toml/test_groups.tomlparses viaTOML.parsefile; every new test file +runtests.jlparses viaMeta.parseall. Runic-clean.Draft — please ignore until reviewed by @ChrisRackauckas.
🤖 Generated with Claude Code