Skip to content

Commit 7b7baed

Browse files
committed
fix(Issue-1865): Some aborted tests report as success
relates to Issue-1625 Signed-off-by: l-1squared <[email protected]>
1 parent 0b21bea commit 7b7baed

File tree

4 files changed

+25
-17
lines changed

4 files changed

+25
-17
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Release v2.0.2
22
## Fixed issues
33
* The java 17 example projects now comes with a basic logger. [#374](https://github.com/TNG/JGiven/issues/374) (thanks to rolfschumacher for reporting)
4+
* Fixed an issue where tests that aborted in the main method were reported as
5+
success. [#1865](https://github.com/TNG/JGiven/issues/1865) (thanks to abika for reporting)
46

57
# Release v2.0.1
68
## Fixed issues

jgiven-junit5/src/main/java/com/tngtech/jgiven/junit5/JGivenExtension.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,13 @@
99
import com.tngtech.jgiven.impl.util.ThrowableUtil;
1010
import com.tngtech.jgiven.report.impl.CommonReportHelper;
1111
import com.tngtech.jgiven.report.model.ReportModel;
12-
import java.util.EnumSet;
1312
import org.junit.jupiter.api.Assumptions;
1413
import org.junit.jupiter.api.Tag;
1514
import org.junit.jupiter.api.TestInstance;
16-
import org.junit.jupiter.api.extension.AfterAllCallback;
17-
import org.junit.jupiter.api.extension.AfterTestExecutionCallback;
18-
import org.junit.jupiter.api.extension.BeforeAllCallback;
19-
import org.junit.jupiter.api.extension.BeforeEachCallback;
20-
import org.junit.jupiter.api.extension.ExtensionContext;
15+
import org.junit.jupiter.api.extension.*;
2116
import org.junit.jupiter.api.extension.ExtensionContext.Namespace;
22-
import org.junit.jupiter.api.extension.TestInstancePostProcessor;
17+
18+
import java.util.EnumSet;
2319

2420
import static com.tngtech.jgiven.report.model.ExecutionStatus.*;
2521

@@ -87,6 +83,8 @@ public void afterTestExecution(ExtensionContext context) throws Exception {
8783
try {
8884
if (context.getExecutionException().isPresent() && !ThrowableUtil.isAssumptionException(context.getExecutionException().get())) {
8985
scenario.getExecutor().failed(context.getExecutionException().get());
86+
} else if (context.getExecutionException().isPresent() && ThrowableUtil.isAssumptionException(context.getExecutionException().get())) {
87+
scenario.getExecutor().aborted(context.getExecutionException().get());
9088
}
9189
scenario.finished();
9290

jgiven-testng/src/main/java/com/tngtech/jgiven/testng/ScenarioTestListener.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.tngtech.jgiven.testng;
22

3-
import static java.util.Arrays.asList;
4-
53
import com.tngtech.jgiven.base.ScenarioTestBase;
64
import com.tngtech.jgiven.exception.FailIfPassedException;
75
import com.tngtech.jgiven.impl.ScenarioBase;
@@ -11,13 +9,16 @@
119
import com.tngtech.jgiven.report.impl.CommonReportHelper;
1210
import com.tngtech.jgiven.report.model.NamedArgument;
1311
import com.tngtech.jgiven.report.model.ReportModel;
14-
import java.lang.reflect.Method;
15-
import java.util.List;
16-
import java.util.concurrent.ConcurrentHashMap;
1712
import org.testng.ITestContext;
1813
import org.testng.ITestListener;
1914
import org.testng.ITestResult;
2015

16+
import java.lang.reflect.Method;
17+
import java.util.List;
18+
import java.util.concurrent.ConcurrentHashMap;
19+
20+
import static java.util.Arrays.asList;
21+
2122
/**
2223
* TestNG Test listener to enable JGiven for a test class.
2324
*/
@@ -102,6 +103,11 @@ public void onTestFailure(ITestResult paramITestResult) {
102103

103104
@Override
104105
public void onTestSkipped(ITestResult testResult) {
106+
ScenarioBase scenario = getScenario(testResult);
107+
if (scenario != null) {
108+
scenario.getExecutor().aborted(testResult.getThrowable());
109+
testFinished(testResult);
110+
}
105111
testFinished(testResult);
106112
}
107113

jgiven-tests/src/test/java/com/tngtech/jgiven/testframework/ThenTestFramework.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package com.tngtech.jgiven.testframework;
22

3-
import static org.assertj.core.api.Assertions.assertThat;
4-
5-
import java.lang.reflect.Method;
6-
import java.util.List;
7-
83
import com.tngtech.jgiven.annotation.ExpectedScenarioState;
94
import com.tngtech.jgiven.impl.util.ReflectionUtil;
105
import com.tngtech.jgiven.report.model.ExecutionStatus;
116
import com.tngtech.jgiven.report.model.ScenarioModel;
127
import com.tngtech.jgiven.report.model.ThenReportModel;
138
import com.tngtech.jgiven.tests.TestScenarioRepository.TestScenario;
149

10+
import java.lang.reflect.Method;
11+
import java.util.List;
12+
13+
import static org.assertj.core.api.Assertions.assertThat;
14+
1515
public class ThenTestFramework<SELF extends ThenTestFramework<?>> extends ThenReportModel<SELF> {
1616
@ExpectedScenarioState
1717
protected TestScenario testScenario;
@@ -25,6 +25,8 @@ public SELF the_test_is_ignored() {
2525
// The standard JUnit executor will report the test as passed and not ignored,
2626
// we thus only test for not failed here
2727
the_test_passes();
28+
assertThat(reportModel.getScenarios().get(0).getExecutionStatus())
29+
.isIn(ExecutionStatus.ABORTED, ExecutionStatus.SCENARIO_PENDING, ExecutionStatus.SOME_STEPS_PENDING);
2830
return self();
2931
}
3032

0 commit comments

Comments
 (0)