Skip to content

Commit 29593ec

Browse files
authored
Fix Node traversal and cleanup during printing phase (#70)
* fix logic to traverse the nodes * change to snapshot * small refactor
1 parent cdae8bb commit 29593ec

File tree

4 files changed

+25
-31
lines changed

4 files changed

+25
-31
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>me.fabriciorby</groupId>
88
<artifactId>maven-surefire-junit5-tree-reporter</artifactId>
9-
<version>1.5.0</version>
9+
<version>1.5.1-SNAPSHOT</version>
1010
<packaging>jar</packaging>
1111

1212
<name>maven-surefire-junit5-tree-reporter</name>

src/main/java/org/apache/maven/plugin/surefire/report/ActualTreePrinter.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,18 @@ public ActualTreePrinter(Node node, ConsoleLogger consoleLogger, ReporterOptions
2525
this.theme = options.getTheme();
2626
}
2727

28-
public void print() {
28+
public void printAndRemoveChild() {
2929
if (options.isPrintBlankLineBetweenTests()) println("");
30-
print(tree.branches.get(0));
31-
Node.clearTree();
30+
print();
31+
removeChild();
32+
}
33+
34+
public void print() {
35+
print(tree);
36+
}
37+
38+
public void removeChild() {
39+
tree.getParent().branches.remove(tree);
3240
}
3341

3442
private void print(Node node) {
@@ -68,7 +76,7 @@ private void println(String message) {
6876
}
6977

7078
private boolean isLastMissingBranch(Node node) {
71-
Node rootChild = tree.branches.get(0); // first after ROOT
79+
Node rootChild = Node.getRoot().branches.get(0); // first after ROOT
7280
if (rootChild.hasBranches()) {
7381
Node rootChildLastChild = getLastItem(rootChild.branches); // last branch in root child
7482
return node.getParent(rootChildLastChild.getName()).isPresent() || node == rootChildLastChild;

src/main/java/org/apache/maven/plugin/surefire/report/TestReportHandler.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,17 @@ public void print(TreePrinter treePrinter) {
4343
testSetStats.getReportEntries()
4444
.forEach(entry -> Node.getBranchNode(node, getTestClassPath(entry.getSourceName())).get().wrappedReportEntries.add(entry));
4545
}
46-
if (report != null) {
47-
Node.getBranchNode(node, getTestClassPath(report.getSourceName())).get().setClassReportEntry((WrappedReportEntry) report);
48-
}
46+
47+
Node classToBeTested = Node.getBranchNode(node, getTestClassPath(report.getSourceName())).get();
48+
classToBeTested.setClassReportEntry((WrappedReportEntry) report);
49+
4950
if (isMarkedAsNestedTest()) {
5051
prepareEntriesForNestedTests();
5152
if (isNestedTestReadyToPrint()) {
52-
printNestedTests(treePrinter);
53+
printNestedTests(treePrinter, classToBeTested);
5354
}
5455
} else {
55-
printTests(treePrinter);
56+
printTests(treePrinter, classToBeTested);
5657
}
5758
}
5859

@@ -106,13 +107,13 @@ private boolean isNestedTestReadyToPrint() {
106107
return getClassEntryList().size() == getClassNameList().size();
107108
}
108109

109-
private void printNestedTests(TreePrinter treePrinter) {
110-
treePrinter.printTests();
110+
private void printNestedTests(TreePrinter treePrinter, Node classToBeTested) {
111+
treePrinter.printTests(classToBeTested);
111112
cleanEntries();
112113
}
113114

114-
private void printTests(TreePrinter treePrinter) {
115-
treePrinter.printTests();
115+
private void printTests(TreePrinter treePrinter, Node classToBeTested) {
116+
treePrinter.printTests(classToBeTested);
116117
}
117118

118119
private <J, K, V extends Collection<K>> BiFunction<J, V, V> addToCollection(K obj) {

src/main/java/org/apache/maven/plugin/surefire/report/TreePrinter.java

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,7 @@
2020
package org.apache.maven.plugin.surefire.report;
2121

2222
import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
23-
import org.apache.maven.surefire.shared.lang3.ArrayUtils;
24-
import org.apache.maven.surefire.shared.lang3.StringUtils;
25-
import org.apache.maven.surefire.shared.utils.logging.MessageBuilder;
2623

27-
import java.io.IOException;
28-
import java.util.Arrays;
29-
import java.util.List;
30-
import java.util.Set;
31-
import java.util.stream.Collectors;
32-
import java.util.stream.LongStream;
33-
34-
import static java.util.stream.Collectors.toList;
35-
import static java.util.stream.Collectors.toSet;
36-
import static org.apache.maven.plugin.surefire.report.TestSetStats.concatenateWithTestGroup;
37-
import static org.apache.maven.plugin.surefire.report.TextFormatter.abbreviateName;
38-
import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank;
3924
import static org.apache.maven.surefire.shared.utils.logging.MessageUtils.buffer;
4025

4126
/**
@@ -54,7 +39,7 @@ public TreePrinter(ConsoleLogger consoleLogger, ReporterOptions options) {
5439
this.options = options;
5540
}
5641

57-
public void printTests() {
58-
new ActualTreePrinter(Node.getRoot(), consoleLogger, options).print();
42+
public void printTests(Node node) {
43+
new ActualTreePrinter(node, consoleLogger, options).printAndRemoveChild();
5944
}
6045
}

0 commit comments

Comments
 (0)