При попытке запустить 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()));
}
}