This repository aims to bridge the gap between JUnit 5 and Robolectric, enabling developers to leverage the benefits of both frameworks for unit testing Android applications. While Robolectric currently lacks a dedicated JUnit 5 extension, this project proposes a community-driven solution to achieve seamless integration.
Apache License 2.0
41
stars
2
forks
source link
Couldn't create lock file in attempt to run an example of Basic usage #77
Hello!
Seems that incorrect files naming is used on Windows.
The plugin version:
id 'tech.apter.junit5.jupiter.robolectric-extension-gradle-plugin' version '0.7.0'
And the Robolectric dependency is:
testImplementation 'org.robolectric:robolectric:4.12.1'
Couldn't create lock file C:\Users\vkuts\org.robolectric:android-all-instrumented:13-robolectric-9030017-i6.lock
java.lang.IllegalStateException: Couldn't create lock file C:\Users\vkuts\org.robolectric:android-all-instrumented:13-robolectric-9030017-i6.lock
at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.whileLocked(JUnit5MavenDependencyResolver.kt:81)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.getLocalArtifactUrls(JUnit5MavenDependencyResolver.kt:48)
at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrls(MavenDependencyResolver.java:78)
at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrl(MavenDependencyResolver.java:129)
at org.robolectric.plugins.DefaultSdkProvider$DefaultSdk.getJarPath(DefaultSdkProvider.java:143)
at org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader.(AndroidSandbox.java:128)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxBuilder.createClassLoader(JUnit5RobolectricSandboxBuilder.kt:62)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxBuilder.build(JUnit5RobolectricSandboxBuilder.kt:37)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxManager.getAndroidSandbox(JUnit5RobolectricSandboxManager.kt:43)
at org.robolectric.RobolectricTestRunner.getSandbox(RobolectricTestRunner.java:248)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunner.sdkEnvironment(JUnit5RobolectricTestRunner.kt:51)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunner.bootstrapSdkEnvironment(JUnit5RobolectricTestRunner.kt:48)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunnerHelper.sdkEnvironment(JUnit5RobolectricTestRunnerHelper.kt:29)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunnerHelper.proceedInvocation(JUnit5RobolectricTestRunnerHelper.kt:66)
at tech.apter.junit.jupiter.robolectric.RobolectricExtension.interceptBeforeAllMethod(RobolectricExtension.kt:63)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
Suppressed: java.lang.IllegalStateException: Couldn't create lock file C:\Users\vkuts\org.robolectric:android-all-instrumented:13-robolectric-9030017-i6.lock
at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.whileLocked(JUnit5MavenDependencyResolver.kt:81)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.getLocalArtifactUrls(JUnit5MavenDependencyResolver.kt:48)
at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrls(MavenDependencyResolver.java:78)
at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrl(MavenDependencyResolver.java:129)
at org.robolectric.plugins.DefaultSdkProvider$DefaultSdk.getJarPath(DefaultSdkProvider.java:143)
at org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader.(AndroidSandbox.java:128)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxBuilder.createClassLoader(JUnit5RobolectricSandboxBuilder.kt:62)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxBuilder.build(JUnit5RobolectricSandboxBuilder.kt:37)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxManager.getAndroidSandbox(JUnit5RobolectricSandboxManager.kt:43)
at org.robolectric.RobolectricTestRunner.getSandbox(RobolectricTestRunner.java:248)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunner.sdkEnvironment(JUnit5RobolectricTestRunner.kt:51)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunner.bootstrapSdkEnvironment(JUnit5RobolectricTestRunner.kt:48)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunnerHelper.sdkEnvironment(JUnit5RobolectricTestRunnerHelper.kt:29)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunnerHelper.proceedInvocation(JUnit5RobolectricTestRunnerHelper.kt:66)
at tech.apter.junit.jupiter.robolectric.RobolectricExtension.interceptAfterAllMethod(RobolectricExtension.kt:145)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1085)
... 1 more
Caused by: java.io.FileNotFoundException: C:\Users\vkuts\org.robolectric:android-all-instrumented:13-robolectric-9030017-i6.lock (The filename, directory name, or volume label syntax is incorrect)
at java.base/java.io.RandomAccessFile.open0(Native Method)
at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:345)
at java.base/java.io.RandomAccessFile.(RandomAccessFile.java:259)
at java.base/java.io.RandomAccessFile.(RandomAccessFile.java:214)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.whileLocked(JUnit5MavenDependencyResolver.kt:73)
... 17 more
Caused by: java.io.FileNotFoundException: C:\Users\vkuts\org.robolectric:android-all-instrumented:13-robolectric-9030017-i6.lock (The filename, directory name, or volume label syntax is incorrect)
at java.base/java.io.RandomAccessFile.open0(Native Method)
at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:345)
at java.base/java.io.RandomAccessFile.(RandomAccessFile.java:259)
at java.base/java.io.RandomAccessFile.(RandomAccessFile.java:214)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.whileLocked(JUnit5MavenDependencyResolver.kt:73)
... 15 more
Hello! Seems that incorrect files naming is used on Windows. The plugin version: id 'tech.apter.junit5.jupiter.robolectric-extension-gradle-plugin' version '0.7.0' And the Robolectric dependency is: testImplementation 'org.robolectric:robolectric:4.12.1'
Couldn't create lock file C:\Users\vkuts\org.robolectric:android-all-instrumented:13-robolectric-9030017-i6.lock java.lang.IllegalStateException: Couldn't create lock file C:\Users\vkuts\org.robolectric:android-all-instrumented:13-robolectric-9030017-i6.lock at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.whileLocked(JUnit5MavenDependencyResolver.kt:81) at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.getLocalArtifactUrls(JUnit5MavenDependencyResolver.kt:48) at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrls(MavenDependencyResolver.java:78) at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrl(MavenDependencyResolver.java:129) at org.robolectric.plugins.DefaultSdkProvider$DefaultSdk.getJarPath(DefaultSdkProvider.java:143) at org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader.(AndroidSandbox.java:128)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxBuilder.createClassLoader(JUnit5RobolectricSandboxBuilder.kt:62)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxBuilder.build(JUnit5RobolectricSandboxBuilder.kt:37)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxManager.getAndroidSandbox(JUnit5RobolectricSandboxManager.kt:43)
at org.robolectric.RobolectricTestRunner.getSandbox(RobolectricTestRunner.java:248)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunner.sdkEnvironment(JUnit5RobolectricTestRunner.kt:51)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunner.bootstrapSdkEnvironment(JUnit5RobolectricTestRunner.kt:48)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunnerHelper.sdkEnvironment(JUnit5RobolectricTestRunnerHelper.kt:29)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunnerHelper.proceedInvocation(JUnit5RobolectricTestRunnerHelper.kt:66)
at tech.apter.junit.jupiter.robolectric.RobolectricExtension.interceptBeforeAllMethod(RobolectricExtension.kt:63)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
Suppressed: java.lang.IllegalStateException: Couldn't create lock file C:\Users\vkuts\org.robolectric:android-all-instrumented:13-robolectric-9030017-i6.lock
at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.whileLocked(JUnit5MavenDependencyResolver.kt:81)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.getLocalArtifactUrls(JUnit5MavenDependencyResolver.kt:48)
at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrls(MavenDependencyResolver.java:78)
at org.robolectric.internal.dependency.MavenDependencyResolver.getLocalArtifactUrl(MavenDependencyResolver.java:129)
at org.robolectric.plugins.DefaultSdkProvider$DefaultSdk.getJarPath(DefaultSdkProvider.java:143)
at org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader.(AndroidSandbox.java:128)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxBuilder.createClassLoader(JUnit5RobolectricSandboxBuilder.kt:62)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxBuilder.build(JUnit5RobolectricSandboxBuilder.kt:37)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricSandboxManager.getAndroidSandbox(JUnit5RobolectricSandboxManager.kt:43)
at org.robolectric.RobolectricTestRunner.getSandbox(RobolectricTestRunner.java:248)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunner.sdkEnvironment(JUnit5RobolectricTestRunner.kt:51)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunner.bootstrapSdkEnvironment(JUnit5RobolectricTestRunner.kt:48)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunnerHelper.sdkEnvironment(JUnit5RobolectricTestRunnerHelper.kt:29)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5RobolectricTestRunnerHelper.proceedInvocation(JUnit5RobolectricTestRunnerHelper.kt:66)
at tech.apter.junit.jupiter.robolectric.RobolectricExtension.interceptAfterAllMethod(RobolectricExtension.kt:145)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1085)
... 1 more
Caused by: java.io.FileNotFoundException: C:\Users\vkuts\org.robolectric:android-all-instrumented:13-robolectric-9030017-i6.lock (The filename, directory name, or volume label syntax is incorrect)
at java.base/java.io.RandomAccessFile.open0(Native Method)
at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:345)
at java.base/java.io.RandomAccessFile.(RandomAccessFile.java:259)
at java.base/java.io.RandomAccessFile.(RandomAccessFile.java:214)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.whileLocked(JUnit5MavenDependencyResolver.kt:73)
... 17 more
Caused by: java.io.FileNotFoundException: C:\Users\vkuts\org.robolectric:android-all-instrumented:13-robolectric-9030017-i6.lock (The filename, directory name, or volume label syntax is incorrect)
at java.base/java.io.RandomAccessFile.open0(Native Method)
at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:345)
at java.base/java.io.RandomAccessFile.(RandomAccessFile.java:259)
at java.base/java.io.RandomAccessFile.(RandomAccessFile.java:214)
at tech.apter.junit.jupiter.robolectric.internal.JUnit5MavenDependencyResolver.whileLocked(JUnit5MavenDependencyResolver.kt:73)
... 15 more