Plugin Test extending from BasePlatformTestCase fails on CI
已回答
Tests class (without any test code) extending from com.intellij.testFramework.fixtures.BasePlatformTestCase fails on CI, but passes on my local.
I have a plugin, which relies on android jar - inside the gradle build script - i have these 2 dependencies
compileOnly(fileTree("dir" to "$studioCompilePath/plugins/android/lib", "include" to "*.jar")) compileOnly(fileTree("dir" to "$studioCompilePath/lib", "include" to "*.jar"))
where
All unit tests extends from
studioCompilePath = /Applications/Android Studio.app/Contents
It builds and checks fine on local. But, on CI the test fails - when the test tried to access something from android.jar
All unit tests extends from
com.intellij.testFramework.fixtures.BasePlatformTestCase
- It fails on CI with the below stack-traceava.lang.AssertionError: File accessed outside allowed roots: file:///usr/local/lib/android/sdk/platforms/android-34/android.jar; Allowed roots: [/home/runner/.gradle/caches/modules-2/files-2.1/com.google.android.studio/android-studio/222.4459.24.2221.9971841/5e733c455a76cacc09473825f58cf67a631bc453/android-studio-222.4459.24.2221.9971841, /home/runner/.gradle, /home/runner/work/ExampleProject/ExampleProject/build/classes, /src, /etc, /opt/hostedtoolcache/Java_Zulu_jdk/11.0.20-8/x64, /home/runner, /private/etc, /tmp/unitTest__2TWNnYqq0EYM9xRXCaWpBxEQhHC, /tmp] at com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess.assertAccessInTests(VfsRootAccess.java:93) at com.intellij.openapi.vfs.newvfs.impl.VirtualDirectoryImpl.findInPersistence(VirtualDirectoryImpl.java:179) at com.intellij.openapi.vfs.newvfs.impl.VirtualDirectoryImpl.doFindChild(VirtualDirectoryImpl.java:132) at com.intellij.openapi.vfs.newvfs.impl.VirtualDirectoryImpl.findChild(VirtualDirectoryImpl.java:78) at com.intellij.openapi.vfs.newvfs.impl.VirtualDirectoryImpl.refreshAndFindChild(VirtualDirectoryImpl.java:346) at com.intellij.openapi.vfs.VfsUtil.refreshAndFindChild(VfsUtil.java:216) at com.android.tools.idea.sdk.AndroidSdks.getPlatformAndAddOnJars(AndroidSdks.java:407) at com.android.tools.idea.sdk.AndroidSdks.getLibraryRootsForTarget(AndroidSdks.java:342) at com.android.tools.idea.sdk.AndroidSdks.setUpSdkAndCommit(AndroidSdks.java:292) at com.android.tools.idea.sdk.AndroidSdks.create(AndroidSdks.java:249) at org.jetbrains.android.sdk.AndroidSdkUtils.createNewAndroidPlatform(AndroidSdkUtils.java:98) at com.android.tools.idea.startup.GradleSpecificInitializer.lambda$setupSdks$0(GradleSpecificInitializer.java:180) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209) at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21) at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
But, it only fails on CI, not on local - i am thinking maybe it has nothing to do with
VfsRootAccess.allowRootAccess
but the studioCompilePath = /Applications/Android Studio.app/Contents
Thanks in advance!帖子评论已关闭。