Skip to content

Commit fbca3f6

Browse files
committed
fix: do not delete IF_SUCCESSFUL files of groups if one of their tests fail
1 parent 716aff3 commit fbca3f6

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/main/kotlin/de/joshuagleitze/test/spek/testfiles/DefaultTestFiles.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import de.joshuagleitze.test.spek.testfiles.DeletionMode.IF_SUCCESSFUL
66
import de.joshuagleitze.test.spek.testfiles.DeletionMode.NEVER
77
import org.spekframework.spek2.dsl.Root
88
import org.spekframework.spek2.lifecycle.ExecutionResult
9-
import org.spekframework.spek2.lifecycle.ExecutionResult.Success
9+
import org.spekframework.spek2.lifecycle.ExecutionResult.Failure
1010
import org.spekframework.spek2.lifecycle.GroupScope
1111
import org.spekframework.spek2.lifecycle.LifecycleListener
1212
import org.spekframework.spek2.lifecycle.Scope
@@ -57,7 +57,10 @@ class DefaultTestFiles internal constructor(): LifecycleListener, TestFiles {
5757
}
5858

5959
private fun leave(result: ExecutionResult) {
60-
scopeFiles.pop().cleanup(wasSuccess = result is Success)
60+
if (result is Failure) {
61+
scopeFiles.forEach { it.reportFailure() }
62+
}
63+
scopeFiles.pop().cleanup()
6164
}
6265

6366
private val Scope.name: String
@@ -74,6 +77,7 @@ class DefaultTestFiles internal constructor(): LifecycleListener, TestFiles {
7477
private val toDelete: MutableSet<Path> = HashSet(),
7578
private var created: Boolean = false
7679
) {
80+
private var wasSuccess = true
7781
private val idGenerator = Random(targetDirectory.hashCode().toLong())
7882

7983
fun prepareNewPath(name: String?, delete: DeletionMode): Path {
@@ -100,7 +104,7 @@ class DefaultTestFiles internal constructor(): LifecycleListener, TestFiles {
100104
return targetDirectory
101105
}
102106

103-
fun cleanup(wasSuccess: Boolean) {
107+
fun cleanup() {
104108
if (created) {
105109
synchronized(this) {
106110
toDelete.forEach(::clear)
@@ -112,6 +116,10 @@ class DefaultTestFiles internal constructor(): LifecycleListener, TestFiles {
112116
}
113117
}
114118

119+
fun reportFailure() {
120+
wasSuccess = false
121+
}
122+
115123
private fun generateTestFileName() = "test-" + idGenerator.nextInt(MAX_VALUE)
116124
}
117125

0 commit comments

Comments
 (0)