Код: Выделить всё
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
[INFO] Running edu.bucknell.eventmanagement.int295.Test
ERROR 2025-05-13 15:10:21,841 [main] edu.bucknell.eventmanagement.int295.executeJavaJar: Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
Exception in thread "main" java.lang.Exception: Too many args
at Main.main(Main.java:10)
ERROR 2025-05-13 15:10:22,431 [main] edu.bucknell.eventmanagement.int295.executeJavaJar: Picked up _JAVA_OPTIONS: -Xms256m -Xmx1024m
[ERROR] Tests run: 4, Failures: 1, Errors: 0, Skipped: 1, Time elapsed: 2.779 s
error.left()
})
}
< /code>
и фактический тест: < /p>
@Test
fun `test execute java jar with tmp`()
{
mockContext(300).value().let { context ->
testInt295DependencyProvider(context).let { dp ->
javaClass.classLoader.getResourceAsStream("HelloTest.jar").use { stream ->
assertNotNull(stream)
val inputFile = createTempFile(prefix = "hello", suffix = ".jar").toFile()
Files.copy(stream, inputFile.toPath(), StandardCopyOption.REPLACE_EXISTING)
executeJavaJar(dp,".",
inputFile.absolutePath, listOf("abc")).fold({
fail("test execute java jar failed with error: ${it.message}")
}, {
output->
println(output)
assertNotNull(output)
assertThat(output).isNotEmpty
})
}
}
}
}
< /code>
Я подозреваю, что это как -то связано с перенаправлением трубопровода в процессе. Однако я не могу найти никакой информации о том, как правильно настроить процесс разработчика процесса для маршрутизации вывода в среде CI. Может ли кто -нибудь пролить свет на то, где я ошибаюсь с этим? После добавления дополнительных журналов я определил, что выполняемый класс Java на самом деле не производит никаких ошибок. Тем не менее, что -то в развертывании CI -это написание текста «_java_options =" -xms256m -xmx1024m " Когда я смотрю на содержимое этого потока для своего теста, в результате я получаю ложный положитель. Если я запускаю этот сценарий Bash: < /p>
#!/bin/sh
# shared gitlab runner host based script
export _JAVA_OPTIONS="-Xms256m -Xmx1024m"
mvn test -Dmule.testingMode=true -Dpackage=edu.bucknell -DfailIfNoTests=false -Dsurefire.skipAfterFailureCount=1
< /code>
Это воспроизводит проблемы, которые я вижу в среде CI. Я могу обойти эту проблему путем вручную убрать эту переменную из среды процесса построения < /p>
val pb = ProcessBuilder(cmdArgs).directory(File(workingDir))
.redirectError(ProcessBuilder.Redirect.PIPE)
pb.environment().remove("_JAVA_OPTIONS")
pb.start()
Подробнее здесь: https://stackoverflow.com/questions/796 ... i-pipeline