Ошибка сборки Maven: «ошибка при написании теста: не удалось создать родительские каталоги» - PullRequest
1 голос
/ 27 января 2020

При попытке запустить mvn test на Windows мои тесты работают нормально, но в CentOS 7 я получаю эту ошибку:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.403s
[INFO] Finished at: Mon Jan 27 10:54:06 CET 2020
[INFO] Final Memory: 17M/119M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (default-testCompile) on project GenericTests: Compilation failure
[ERROR] /home/gitlab-runner/builds/5KQvSgfo/0/webdriver_projects/webdriver_bv/test_dir/src/test/java/genericTests/Contact/InputMaxLengthTest.java:[18,7] error: error while writing InputMaxLengthTest: could not create parent directories

Это происходит и с несколькими другими тестами, хотя и не со всеми из них. Я не понимаю почему. Эти тесты не взаимодействуют с папками и фактически не особо отличаются от других тестов.

Единственное взаимодействие с файловой системой, с которым я сталкиваюсь, заключается в том, что я делаю снимки экрана и помещаю их в папку, используя org.apache.commons.io.FileUtils , но у меня есть разрешения на эту папку. И это происходит, даже когда я закомментирую инструкции по записи в файл, поэтому я не знаю, так ли это.

Помимо добавления функции скриншота, я с тех пор изменил свой pom.xml на

<maven.compiler.source>13</maven.compiler.source>
<maven.compiler.target>13</maven.compiler.target>

и я должен указать на местоположение JDK 13 через export JAVA_HOME=/usr/java/jdk-13.0.2 перед запуском mvn. Должно быть, что-то из этого. Что может быть причиной? Учтите, что это прекрасно работает на Windows.

Я пытался:

  • удаление инструкции скриншота (не сработало)
  • смена компилятора источник / цель до 8, как это было раньше (не работало)

Я не хотел пытаться удалять тесты преступника один за другим, чтобы увидеть, все ли тесты имели эту проблему или нет так как это заняло бы много времени.

РЕДАКТИРОВАТЬ: я также запускал dos2unix в каждом файле проекта, но результат тот же.

Вот строка, где я делаю скриншот и запись в файл, выполненный в каждом тесте:

@After
    public void tearDown() throws Exception {
        File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        // Now you can do whatever you need to do with it, for example copy somewhere
        if (OSChecker.isWindows()) {
            FileUtils.copyFile(scrFile, new File("screenshots\\" + formatScreenshotFilename()));
        }
        else {
            FileUtils.copyFile(scrFile, new File("screenshots/" + formatScreenshotFilename()));
        }
    }

1 Ответ

4 голосов
/ 27 января 2020

Вам следует обновить конфигурацию, чтобы использовать самую последнюю версию 3.8.1 из maven-compiler-plugin , так как вы используете очень старую версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...