Allow to auto-generate files for asserting failures

This commit is contained in:
Nikolay Krasko
2019-10-18 21:36:50 +03:00
parent 4ed64b0283
commit 6d5dc6ea9a
@@ -12,6 +12,7 @@ import java.io.File
private val RUN_MUTED_TESTS = java.lang.Boolean.getBoolean("org.jetbrains.kotlin.run.muted.tests") private val RUN_MUTED_TESTS = java.lang.Boolean.getBoolean("org.jetbrains.kotlin.run.muted.tests")
private val AUTOMATICALLY_MUTE_FAILED_TESTS_WITH_CONTENT: String? = null private val AUTOMATICALLY_MUTE_FAILED_TESTS_WITH_CONTENT: String? = null
private val AUTOMATICALLY_GENERATE_FAIL_FILE_FOR_FAILED_TESTS: Boolean = false
annotation class MuteExtraSuffix(val value: String = "") annotation class MuteExtraSuffix(val value: String = "")
@@ -101,17 +102,27 @@ private fun failFile(testDataFile: File, extraSuffix: String): File? {
return failFile return failFile
} }
private fun checkFailFile(failure: Throwable, testDataFile: File, extraSuffix: String): Boolean { private fun failMessage(failure: Throwable): String {
val failFile = failFile(testDataFile, extraSuffix) ?: return false
val cause = failure.cause val cause = failure.cause
val muteMessage = failure.message + return failure.message +
if (cause != null) { if (cause != null) {
"\n" + cause "\n" + cause
} else { } else {
"" ""
} }
}
KotlinTestUtils.assertEqualsToFile(failFile, muteMessage) private fun checkFailFile(failure: Throwable, testDataFile: File, extraSuffix: String): Boolean {
val failFile = failFile(testDataFile, extraSuffix)
if (failFile == null) {
if (AUTOMATICALLY_GENERATE_FAIL_FILE_FOR_FAILED_TESTS) {
failFileNoCheck(testDataFile, extraSuffix).writeText(failMessage(failure))
}
return false
}
KotlinTestUtils.assertEqualsToFile(failFile, failMessage(failure))
return true return true
} }