В итоге я решил, что то, что Java «диктует» для соглашения, с каталогами, требующимися в определенных местах и методах, которые работают в одном случае, а не в другом, было слишком запутанным для простого тестового приложения, которое я реализовывал.
Я нашел следующее, что мне нужно, простым способом:
Для начала изображения, которые я использовал, предназначены для сравнения тестов, так как их, возможно, придется заменить на лету для отладки, это поможет иметь каталог, внешний по отношению к приложению. Если кто-то поделится, как изменить название этого вопроса, я с радостью это сделаю.
Итак, помня об этом. Теперь у меня есть каталог «images» в корне моего проекта, и этот каталог будет развернут рядом с приложением, в результате чего будет получен следующий базовый продукт:
-myTestApp
myTestApp.jar
-images
baseImage.jpg
testImage.jpg
Код, который я использую для доступа к файлам из моего метода тестирования, выглядит следующим образом и работает для тестирования сборки и запуска в качестве приложения jar:
Path screenshotsPath = Paths.get(System.getProperty("user.dir"), "images");
Path baseFile = Paths.get(screenshotsPath.toString(), "baseImage.jpg" );
Path testFile = Paths.get(screenshotsPath.toString(), "testImage.jpg" );
double imageDiff = calcImageDiff(baseFile, testFile);
Внутри calcImageDiff я просто использую следующее, где file1 и file2 - входные пути:
img1 = ImageIO.read(file1.toFile());
img2 = ImageIO.read(file2.toFile());