[Test] Set static field with application to null after tests are completed

This commit is contained in:
Dmitriy Novozhilov
2021-01-25 19:02:09 +03:00
parent 53e5aa4364
commit c969a34644
@@ -6,10 +6,12 @@
package org.jetbrains.kotlin.test
import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.util.Disposer
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.junit.platform.launcher.TestExecutionListener
import org.junit.platform.launcher.TestPlan
import java.lang.reflect.Field
class ApplicationEnvironmentDisposer : TestExecutionListener {
companion object {
@@ -19,5 +21,8 @@ class ApplicationEnvironmentDisposer : TestExecutionListener {
override fun testPlanExecutionFinished(testPlan: TestPlan) {
KotlinCoreEnvironment.disposeApplicationEnvironment()
Disposer.dispose(ROOT_DISPOSABLE)
val ourApplicationField: Field = ApplicationManager::class.java.getDeclaredField("ourApplication")
ourApplicationField.isAccessible = true
ourApplicationField.set(null, null)
}
}