I have a JUnit test class that is triggered by the maven build.
It loads a file `src/test/resources/ConfigTest.json`
When running locally from the command line it works as expected, but when running in the bitbucket-pipeline this test fails:
```
import java.io.File;
import org.junit.Assert;
import org.junit.Test;
public class ClassLoaderTest {
public final void test() {
ClassLoader c = this.getClass().getClassLoader();
// THIS line fails with a null pointer
File configFile = new File(c.getResource("ConfigTest.json").getFile());
Assert.assertTrue(configFile.exists());
}
}
```
What do I miss?
Mystery solved. The culprint was this line in my `.bash_profile` on my Mac:
# Case-insensitive globbing (used in pathname expansion)
shopt -s nocaseglob;
It allows the `getResourceAsStream(name)` (and any other file operation) find files case insensitive. I presumed that Java on Mac would always be case sensitive.
There was one capitalisation error in my resource name, so the pipeline rightfully failed.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.