diff --git a/backend/mirai-console/src/MiraiConsoleImplementation.kt b/backend/mirai-console/src/MiraiConsoleImplementation.kt index 10edcb69e..3b089971f 100644 --- a/backend/mirai-console/src/MiraiConsoleImplementation.kt +++ b/backend/mirai-console/src/MiraiConsoleImplementation.kt @@ -287,8 +287,13 @@ public interface MiraiConsoleImplementation : CoroutineScope { it.printStackTrace() } Thread.sleep(3000L) // 保证信息打印完成 - exitProcess(1) + if (!IS_GRADLE_TEST) exitProcess(1) + // For gradle tests, killing the JVM also kills a Gradle worker which cause './gradlew test' to fail. + // See https://github.com/gradle/gradle/issues/11195 for more information. } } } } + +@JvmField +internal var IS_GRADLE_TEST = false \ No newline at end of file diff --git a/backend/mirai-console/test/TestMiraiConosle.kt b/backend/mirai-console/test/TestMiraiConosle.kt index 4eafd89aa..1f6c63b44 100644 --- a/backend/mirai-console/test/TestMiraiConosle.kt +++ b/backend/mirai-console/test/TestMiraiConosle.kt @@ -33,6 +33,7 @@ import kotlin.test.assertNotNull @OptIn(ConsoleInternalApi::class, kotlin.io.path.ExperimentalPathApi::class) fun initTestEnvironment() { + IS_GRADLE_TEST = true object : MiraiConsoleImplementation { override val rootPath: Path = createTempDirectory()