mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJ-CR-129986 [Gradle|TestFramework] fix: restore application and project initial state after each Gradle project test
GitOrigin-RevId: d47227bdc999f0c0c74b684ebaecb35b1e3f9bfd
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ac748035e8
commit
03e140a2da
@@ -17,7 +17,7 @@ import java.time.Duration
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@TestOnly
|
||||
internal class TestApplicationExtension : BeforeAllCallback, AfterEachCallback {
|
||||
class TestApplicationExtension : BeforeAllCallback, AfterEachCallback {
|
||||
override fun beforeAll(context: ExtensionContext) {
|
||||
context.testApplication().getOrThrow()
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.plugins.gradle.execution.test.runner.GradleTestsExecutionConsole
|
||||
import org.jetbrains.plugins.gradle.testFramework.fixture.*
|
||||
import org.jetbrains.plugins.gradle.testFramework.util.ExternalSystemExecutionTracer
|
||||
import org.junit.jupiter.api.AfterEach
|
||||
|
||||
abstract class GradleExecutionBaseTestCase : GradleProjectTestCase() {
|
||||
|
||||
@@ -41,6 +42,15 @@ abstract class GradleExecutionBaseTestCase : GradleProjectTestCase() {
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Forces a project closing after each Gradle execution test.
|
||||
* The BuildViewTestFixture cannot release all editors in console view after the test.
|
||||
*/
|
||||
@AfterEach
|
||||
fun destroyAllGradleFixturesAfterEachTest() {
|
||||
destroyAllGradleFixtures()
|
||||
}
|
||||
|
||||
// '--rerun-tasks' corrupts gradle build caches fo gradle versions before 4.0 (included)
|
||||
private fun cleanupProjectBuildDirectory() {
|
||||
runWriteActionAndWait {
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ abstract class GradleProjectBaseTestCase {
|
||||
return fixtures[fixtureId]!!
|
||||
}
|
||||
|
||||
private fun destroyAllGradleFixtures() {
|
||||
fun destroyAllGradleFixtures() {
|
||||
runAll(fixtures.values.reversed(), ::destroyGradleFixture)
|
||||
}
|
||||
|
||||
|
||||
+2
-14
@@ -1,14 +1,12 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gradle.testFramework.fixtures.application
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.application.invokeAndWaitIfNeeded
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryTableTracker
|
||||
import com.intellij.openapi.vfs.impl.VirtualFilePointerTracker
|
||||
import com.intellij.testFramework.SdkLeakTracker
|
||||
import com.intellij.testFramework.common.cleanApplicationState
|
||||
import com.intellij.testFramework.common.runAll
|
||||
import com.intellij.testFramework.junit5.impl.testApplication
|
||||
import com.intellij.testFramework.junit5.impl.TestApplicationExtension
|
||||
import org.jetbrains.plugins.gradle.testFramework.fixtures.tracker.ExternalSystemListenerLeakTracker
|
||||
import org.junit.jupiter.api.extension.AfterAllCallback
|
||||
import org.junit.jupiter.api.extension.BeforeAllCallback
|
||||
@@ -27,21 +25,11 @@ import org.junit.jupiter.api.extension.ExtensionContext
|
||||
*/
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
@ExtendWith(
|
||||
GradleProjectTestApplicationExtension::class,
|
||||
TestApplicationExtension::class,
|
||||
GradleProjectTestApplicationLeakTrackerExtension::class,
|
||||
)
|
||||
annotation class GradleProjectTestApplication
|
||||
|
||||
private class GradleProjectTestApplicationExtension : BeforeAllCallback, AfterAllCallback {
|
||||
override fun beforeAll(context: ExtensionContext) {
|
||||
context.testApplication().getOrThrow()
|
||||
}
|
||||
|
||||
override fun afterAll(context: ExtensionContext) {
|
||||
ApplicationManager.getApplication().cleanApplicationState()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.intellij.testFramework.junit5.impl.TestApplicationLeakTrackerExtension
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user