diff --git a/src/main/java/rife/bld/extension/TestNgOperation.java b/src/main/java/rife/bld/extension/TestNgOperation.java index 2274964..7a04f0a 100644 --- a/src/main/java/rife/bld/extension/TestNgOperation.java +++ b/src/main/java/rife/bld/extension/TestNgOperation.java @@ -162,6 +162,14 @@ public class TestNgOperation extends AbstractProcessOperation { return this; } + /** + * Should TestNG fail execution if all tests were skipped and nothing was run. + */ + public TestNgOperation failWhenEverythingSkipped(Boolean isFailAllSkipped) { + options.put("-failwheneverythingskipped", String.valueOf(isFailAllSkipped)); + return this; + } + /** * Whether TestNG should continue to execute the remaining tests in the suite or skip them if in a {@code @Before*} * method. diff --git a/src/test/java/rife/bld/extension/TestNgOperationTest.java b/src/test/java/rife/bld/extension/TestNgOperationTest.java index ed1b06b..7f13c70 100644 --- a/src/test/java/rife/bld/extension/TestNgOperationTest.java +++ b/src/test/java/rife/bld/extension/TestNgOperationTest.java @@ -105,6 +105,15 @@ class TestNgOperationTest { .doesNotThrowAnyException(); } + @Test + void testFailWheneverEverythingSkipped() { + var op = new TestNgOperation().failWhenEverythingSkipped(false); + assertThat(op.options.get("-failwheneverythingskipped")).isEqualTo("false"); + + op = new TestNgOperation().failWhenEverythingSkipped(true); + assertThat(op.options.get("-failwheneverythingskipped")).isEqualTo("true"); + } + @Test void testFailurePolicy() { var op = new TestNgOperation().failurePolicy(TestNgOperation.FailurePolicy.CONTINUE);