@@ -4,7 +4,25 @@ using Test, VortexStepMethod
44cd (@__DIR__ ) # ensure we're in test/ no matter how tests are launched
55include (" test_data_utils.jl" )
66
7+ # Support selective test execution via ]test test_args=["pattern"]
8+ const test_patterns = isempty (ARGS ) ? String[] : ARGS
9+
710println (" Running tests..." )
11+ if ! isempty (test_patterns)
12+ println (" Filtering tests matching: " , test_patterns)
13+ end
14+
15+ # Helper to check if a test file matches any pattern
16+ function should_run_test (test_path:: String )
17+ isempty (test_patterns) && return true
18+ for pattern in test_patterns
19+ # Match directory (e.g., "solver") or specific file (e.g., "test_group_coefficients")
20+ if occursin (pattern, test_path)
21+ return true
22+ end
23+ end
24+ return false
25+ end
826
927# keep your env check as-is...
1028const build_is_production_build_env_name = " BUILD_IS_PRODUCTION_BUILD"
@@ -14,25 +32,25 @@ const build_is_production_build = let v = get(ENV, build_is_production_build_env
1432end :: Bool
1533
1634@testset verbose = true " Testing VortexStepMethod..." begin
17- if build_is_production_build
35+ if build_is_production_build && should_run_test ( " bench " )
1836 include (" bench.jl" )
1937 end
20- include (" body_aerodynamics/test_body_aerodynamics.jl" )
21- include (" body_aerodynamics/test_results.jl" )
22- include (" filament/test_bound_filament.jl" )
23- include (" filament/test_semi_infinite_filament.jl" )
24- include (" panel/test_panel.jl" )
25- include (" plotting/test_plotting.jl" )
26- include (" polars/test_polars.jl" )
27- include (" ram_geometry/test_kite_geometry.jl" )
28- include (" settings/test_settings.jl" )
29- include (" solver/test_solver.jl" )
30- include (" solver/test_group_coefficients.jl" )
31- include (" VortexStepMethod/test_VortexStepMethod.jl" )
32- include (" wake/test_wake.jl" )
33- include (" wing_geometry/test_wing_geometry.jl" )
34- include (" yaml_geometry/test_yaml_geometry.jl" )
35- include (" Aqua.jl" )
38+ should_run_test ( " body_aerodynamics/test_body_aerodynamics.jl " ) && include (" body_aerodynamics/test_body_aerodynamics.jl" )
39+ should_run_test ( " body_aerodynamics/test_results.jl " ) && include (" body_aerodynamics/test_results.jl" )
40+ should_run_test ( " filament/test_bound_filament.jl " ) && include (" filament/test_bound_filament.jl" )
41+ should_run_test ( " filament/test_semi_infinite_filament.jl " ) && include (" filament/test_semi_infinite_filament.jl" )
42+ should_run_test ( " panel/test_panel.jl " ) && include (" panel/test_panel.jl" )
43+ should_run_test ( " plotting/test_plotting.jl " ) && include (" plotting/test_plotting.jl" )
44+ should_run_test ( " polars/test_polars.jl " ) && include (" polars/test_polars.jl" )
45+ should_run_test ( " ram_geometry/test_kite_geometry.jl " ) && include (" ram_geometry/test_kite_geometry.jl" )
46+ should_run_test ( " settings/test_settings.jl " ) && include (" settings/test_settings.jl" )
47+ should_run_test ( " solver/test_solver.jl " ) && include (" solver/test_solver.jl" )
48+ should_run_test ( " solver/test_group_coefficients.jl " ) && include (" solver/test_group_coefficients.jl" )
49+ should_run_test ( " VortexStepMethod/test_VortexStepMethod.jl " ) && include (" VortexStepMethod/test_VortexStepMethod.jl" )
50+ should_run_test ( " wake/test_wake.jl " ) && include (" wake/test_wake.jl" )
51+ should_run_test ( " wing_geometry/test_wing_geometry.jl " ) && include (" wing_geometry/test_wing_geometry.jl" )
52+ should_run_test ( " yaml_geometry/test_yaml_geometry.jl " ) && include (" yaml_geometry/test_yaml_geometry.jl" )
53+ should_run_test ( " Aqua.jl " ) && include (" Aqua.jl" )
3654end
3755
3856nothing
0 commit comments