Use SciMLTesting v1.2 (folder-based run_tests)#521
Merged
ChrisRackauckas merged 1 commit intoJun 14, 2026
Merged
Conversation
Replace the hand-written GROUP dispatch in test/runtests.jl with the
SciMLTesting v1.2 folder-discovery entry point (`using SciMLTesting;
run_tests()`), restructuring the suite into group folders:
* Core = top-level test/*.jl @safetestset wrappers (each includes its
self-contained body from test/bodies/, which in turn includes the
shared preamble test/shared/test_setup.jl). benchmarks_valid.jl is a
new Core wrapper reproducing the master "Benchmarks are valid" testset
(it includes the package's benchmarking/benchmarks.jl).
* ModelingToolkitSIExt = test/ModelingToolkitSIExt/ with its own sub-env
Project.toml declaring the extension trigger weakdeps
(ModelingToolkitBase, SymbolicUtils, Symbolics) plus Nemo/
SpecialFunctions/TestSetExtensions, replacing the dynamic
Pkg.add("ModelingToolkit") the old runtests did for this group.
* QA = test/qa/qa.jl, run in the main test env (Aqua stays in root
[extras], as on master — no qa sub-env is invented).
* test/shared/test_setup.jl and test/bodies/ are non-group folders, never
auto-discovered.
The exact set of tests run under each GROUP value (All, Core, QA,
ModelingToolkitSIExt) is unchanged from master: Core runs the 44 non-QA
top-level test files plus the benchmarks testset; QA runs qa.jl; All adds
the ModelingToolkit extension test; ModelingToolkitSIExt runs that test.
Add SciMLTesting (+ SafeTestsets) to the root test deps and the ext
sub-env; drop Pkg from the root test deps (the harness owns all Pkg
operations now). test/test_groups.toml is unchanged.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0a2fc6e to
3d41b2b
Compare
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.
Converts the test suite to the SciMLTesting v1.2 folder-discovery model.
test/runtests.jlis now just:Layout:
test/*.jl@safetestsetwrappers. Each wrapperincludes its self-contained body fromtest/bodies/, which in turnincludes the shared preambletest/shared/test_setup.jl(the longusing StructuralIdentifiability: ...import block + therandom_ps/random_ps_matrix/rand_polyhelpers +const GROUP). A newtest/benchmarks_valid.jlCore wrapper reproduces the master "Benchmarks are valid" testset (itincludes the package'sbenchmarking/benchmarks.jl).test/ModelingToolkitSIExt/with its own sub-envProject.tomldeclaring the extension trigger weakdeps (ModelingToolkitBase,SymbolicUtils,Symbolics) plusNemo/SpecialFunctions/TestSetExtensions. This replaces the dynamicPkg.add("ModelingToolkit")/Pkg.add("Symbolics")the oldruntests.jldid for this group; the sub-env reliably triggers theModelingToolkitSIExtextension whereeval_at_nemolives.test/qa/qa.jl, run in the main test env (Aqua stays in the root[extras], exactly as on master — no QA sub-env is invented).test/shared/andtest/bodies/are non-group folders, never auto-discovered.The exact set of tests run under each
GROUPvalue is unchanged from master:qa.jlonly.SciMLTesting(+SafeTestsets) added to the root test deps and the ext sub-env;Pkgdropped from the root test deps (the harness owns allPkgoperations now).test/test_groups.tomlis unchanged.This supersedes the prior @safetestset canonicalization on this branch (which is the foundation reused here).
Ignore until reviewed by @ChrisRackauckas.