Stop auto-generating expected test data on TeamCity in assertEqualsToFile

This commit is contained in:
Nikolay Krasko
2021-07-29 19:24:06 +03:00
committed by teamcityserver
parent edaf925b19
commit ca4410aa53
2 changed files with 21 additions and 8 deletions
@@ -15,13 +15,19 @@ import java.io.IOException
import org.junit.jupiter.api.Assertions as JUnit5PlatformAssertions
object JUnit5Assertions : AssertionsService() {
private val isTeamCityBuild: Boolean = System.getenv("TEAMCITY_VERSION") != null
override fun assertEqualsToFile(expectedFile: File, actual: String, sanitizer: (String) -> String, message: () -> String) {
try {
val actualText = actual.trim { it <= ' ' }.convertLineSeparators().trimTrailingWhitespacesAndAddNewlineAtEOF()
if (!expectedFile.exists()) {
expectedFile.parentFile.mkdirs()
expectedFile.writeText(actualText)
org.junit.jupiter.api.fail("Expected data file did not exist. Generating: $expectedFile")
if (isTeamCityBuild) {
org.junit.jupiter.api.fail("Expected data file did not exist `$expectedFile`")
} else {
expectedFile.parentFile.mkdirs()
expectedFile.writeText(actualText)
org.junit.jupiter.api.fail("Expected data file did not exist. Generating: $expectedFile")
}
}
val expected = expectedFile.readText().convertLineSeparators()
val expectedText = expected.trim { it <= ' ' }.trimTrailingWhitespacesAndAddNewlineAtEOF()
@@ -25,7 +25,6 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.analyzer.AnalysisResult;
import org.jetbrains.kotlin.builtins.DefaultBuiltIns;
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
import org.jetbrains.kotlin.checkers.CompilerTestLanguageVersionSettings;
import org.jetbrains.kotlin.checkers.CompilerTestLanguageVersionSettingsKt;
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys;
import org.jetbrains.kotlin.cli.common.config.ContentRootsKt;
@@ -37,7 +36,9 @@ import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
import org.jetbrains.kotlin.cli.jvm.config.JvmContentRootsKt;
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
import org.jetbrains.kotlin.config.*;
import org.jetbrains.kotlin.config.CommonConfigurationKeys;
import org.jetbrains.kotlin.config.CompilerConfiguration;
import org.jetbrains.kotlin.config.JVMConfigurationKeys;
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl;
import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil;
import org.jetbrains.kotlin.lexer.KtTokens;
@@ -46,6 +47,7 @@ import org.jetbrains.kotlin.psi.KtFile;
import org.jetbrains.kotlin.psi.KtPsiFactoryKt;
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase;
import org.jetbrains.kotlin.test.util.JUnit4Assertions;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.util.StringUtilsKt;
@@ -61,7 +63,8 @@ import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static org.jetbrains.kotlin.test.InTextDirectivesUtils.*;
import static org.jetbrains.kotlin.test.InTextDirectivesUtils.IGNORE_BACKEND_DIRECTIVE_PREFIX;
import static org.jetbrains.kotlin.test.InTextDirectivesUtils.isIgnoredTarget;
public class KotlinTestUtils {
public static String TEST_MODULE_NAME = "test-module";
@@ -257,8 +260,12 @@ public class KotlinTestUtils {
String actualText = StringUtilsKt.trimTrailingWhitespacesAndAddNewlineAtEOF(StringUtil.convertLineSeparators(actual.trim()));
if (!expectedFile.exists()) {
FileUtil.writeToFile(expectedFile, actualText);
Assert.fail("Expected data file did not exist. Generating: " + expectedFile);
if (KtUsefulTestCase.IS_UNDER_TEAMCITY) {
Assert.fail("Expected data file " + expectedFile + " did not exist");
} else {
FileUtil.writeToFile(expectedFile, actualText);
Assert.fail("Expected data file did not exist. Generating: " + expectedFile);
}
}
String expected = FileUtil.loadFile(expectedFile, CharsetToolkit.UTF8, true);