avito-android

Форк
0
88 строк · 2.7 Кб
1
package com.avito.instrumentation
2

3
import com.avito.test.gradle.TestProjectGenerator
4
import com.avito.test.gradle.TestResult
5
import com.avito.test.gradle.gradlew
6
import com.avito.test.gradle.module.AndroidAppModule
7
import com.avito.test.gradle.plugin.plugins
8
import org.junit.jupiter.api.Test
9
import org.junit.jupiter.api.io.TempDir
10
import java.io.File
11

12
internal class ConfigurationCacheCompatibilityTest {
13

14
    @Test
15
    fun `configuration with applied plugin - reuses configuration cache`(@TempDir projectDir: File) {
16
        TestProjectGenerator(
17
            plugins = plugins {
18
                id("com.avito.android.gradle-logger")
19
            },
20
            modules = listOf(
21
                AndroidAppModule(
22
                    name = "app",
23
                    plugins = plugins {
24
                        id(instrumentationPluginId)
25
                    },
26
                    buildGradleExtra = instrumentationConfiguration(),
27
                    useKts = true,
28
                )
29
            )
30
        ).generateIn(projectDir)
31

32
        runHelp(projectDir).assertThat().buildSuccessful()
33

34
        runHelp(projectDir).assertThat().buildSuccessful().configurationCachedReused()
35
    }
36

37
    @Test
38
    fun `instrumentationTask run - reuses configuration cache`(@TempDir projectDir: File) {
39
        TestProjectGenerator(
40
            plugins = plugins {
41
                id("com.avito.android.gradle-logger")
42
            },
43
            modules = listOf(
44
                AndroidAppModule(
45
                    name = "app",
46
                    plugins = plugins {
47
                        id(instrumentationPluginId)
48
                    },
49
                    buildGradleExtra = instrumentationConfiguration(),
50
                    useKts = true,
51
                )
52
            )
53
        ).generateIn(projectDir)
54

55
        runTask(projectDir).assertThat().buildSuccessful()
56

57
        runTask(projectDir).assertThat().buildSuccessful().configurationCachedReused()
58
    }
59

60
    private fun runHelp(projectDir: File): TestResult {
61
        return gradlew(
62
            projectDir,
63
            "help",
64
            "-PteamcityBuildId=0",
65
            "-PbuildNumber=100",
66
            "-PteamcityUrl=xxx",
67
            "-PgitBranch=xxx",
68
            "-PteamcityBuildType=BT",
69
            dryRun = true,
70
            configurationCache = true
71
        )
72
    }
73

74
    private fun runTask(projectDir: File): TestResult {
75
        return gradlew(
76
            projectDir,
77
            ":app:instrumentationFunctionalLocal",
78
            "-PteamcityBuildId=0",
79
            "-PbuildNumber=100",
80
            "-PteamcityUrl=xxx",
81
            "-PgitBranch=xxx",
82
            "-PteamcityBuildType=BT",
83
            "-PisGradleTestKitRun=true",
84
            dryRun = true,
85
            configurationCache = true
86
        )
87
    }
88
}
89

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.