diff --git a/ice-rest-catalog/src/test/java/com/altinity/ice/rest/catalog/RESTCatalogTestBase.java b/ice-rest-catalog/src/test/java/com/altinity/ice/rest/catalog/RESTCatalogTestBase.java index bfdc07c..b8b6d66 100644 --- a/ice-rest-catalog/src/test/java/com/altinity/ice/rest/catalog/RESTCatalogTestBase.java +++ b/ice-rest-catalog/src/test/java/com/altinity/ice/rest/catalog/RESTCatalogTestBase.java @@ -20,6 +20,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Arrays; import java.util.List; import java.util.Map; import org.apache.iceberg.catalog.Catalog; @@ -219,6 +220,17 @@ public Object[][] scenarioProvider() throws Exception { ScenarioTestRunner runner = new ScenarioTestRunner(scenariosDir, Map.of()); List scenarios = runner.discoverScenarios(); + String filtered = System.getProperty("scenario"); + if (filtered != null && !filtered.isBlank()) { + List requested = + Arrays.stream(filtered.split(",")).map(String::trim).filter(s -> !s.isEmpty()).toList(); + scenarios = scenarios.stream().filter(requested::contains).toList(); + if (scenarios.isEmpty()) { + throw new IllegalArgumentException( + "No scenarios matched -Dscenario=" + filtered + " in " + scenariosDir); + } + } + if (scenarios.isEmpty()) { logger.warn("No test scenarios found in: {}", scenariosDir); return new Object[0][0]; diff --git a/ice-rest-catalog/src/test/resources/scenarios/README.md b/ice-rest-catalog/src/test/resources/scenarios/README.md index feb6de3..96d34ab 100644 --- a/ice-rest-catalog/src/test/resources/scenarios/README.md +++ b/ice-rest-catalog/src/test/resources/scenarios/README.md @@ -98,11 +98,9 @@ Scenarios are discovered and executed automatically by the `ScenarioBasedIT` tes mvn test -Dtest=ScenarioBasedIT ``` -To run a specific scenario: +To run a specific scenario, pass `-Dscenario=` (comma-separated for multiple): ```bash -mvn test -Dtest=ScenarioBasedIT#testScenario[basic-operations] +mvn test -Dtest=ScenarioBasedIT -Dscenario=basic-operations +mvn test -Dtest=ScenarioBasedIT -Dscenario=basic-operations,describe-parquet ``` - - -