#java #unit-testing #gradle #testng
#java #модульное тестирование #gradle #testng
Вопрос:
У меня проблема с запуском тестов в gradle. Я знаю, что на других машинах моя конфигурация gradle работает, но на моей, к сожалению, нет. У нас есть junit test и TestNG, и оба они при попытке выполнить выдают stacktrace, подобный этому:
Could not write standard input into: Gradle Worker 1.
java.io.IOException: The pipe is being closed
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:318)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:53)
at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Который постоянно будет выдавать эту ошибку с разным номером (Gradle Worker 2, Gradle Worker 3 и т.д.). Кто-нибудь когда-нибудь сталкивался с подобной проблемой?
Я использую gradle 1.6.
РЕДАКТИРОВАТЬ: я забыл сказать, что я использую gradle wrapper
РЕДАКТИРОВАТЬ: После перехода на версию 1.12 я получаю сообщение об ошибке:
Caused by: org.gradle.api.InvalidUserDataException: Could not create task '(custome taks name)': Unknown argument(s) in task definition: [mustRunAfter]
11:20:17.990 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.TaskFactory.validateArgs(TaskFactory.java:147)
11:20:17.991 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.TaskFactory.checkTaskArgsAndCreateDefaultValues(TaskFactory.java:134)
11:20:17.991 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.TaskFactory.createTask(TaskFactory.java:72)
РЕДАКТИРОВАТЬ: Хорошо, я думаю, я нашел причину этой проблемы — это был антивирус. Когда я отключаю это, скрипт немного продвигается вперед, но заканчивается:
org.gradle.messaging.remote.internal.ConnectException: Could not connect to server [e42b57ea-ced6-4bb6-9369-3186ab4983d6 port:63631, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]]. Tried addresses: [/127.0.0.1, /0:0:0:0:0:0:0:1].
at org.gradle.messaging.remote.internal.inet.TcpOutgoingConnector.connect(TcpOutgoingConnector.java:62)
at org.gradle.messaging.remote.internal.hub.MessageHubBackedClient.getConnection(MessageHubBackedClient.java:35)
at org.gradle.process.internal.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:54)
at org.gradle.process.internal.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:35)
at org.gradle.process.internal.child.ImplementationClassLoaderWorker.execute(ImplementationClassLoaderWorker.java:85)
at org.gradle.process.internal.child.ImplementationClassLoaderWorker.execute(ImplementationClassLoaderWorker.java:41)
at org.gradle.process.internal.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:43)
at org.gradle.process.internal.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:32)
at org.gradle.process.internal.launcher.BootstrapClassLoaderWorker.call(BootstrapClassLoaderWorker.java:46)
at org.gradle.process.internal.launcher.BootstrapClassLoaderWorker.call(BootstrapClassLoaderWorker.java:32)
at jarjar.org.gradle.process.internal.launcher.GradleWorkerMain.run(GradleWorkerMain.java:32)
at jarjar.org.gradle.process.internal.launcher.GradleWorkerMain.main(GradleWorkerMain.java:37)
Caused by: java.net.ConnectException: Connection refused: connect
Поиск в Google по этой ошибке ничего не дает (только некоторая старая информация об ошибках gradle 1.1). Кто-нибудь сталкивался с подобной проблемой?
Комментарии:
1. Я бы попробовал использовать последнюю версию Gradle.
2. Ошибка 1.12 может означать, что в скрипте сборки допущена ошибка, которая остается незамеченной в версии 1.6.
Ответ №1:
Фух, после целого дня борьбы с gradle, я думаю, я наконец нашел причину проблем. Виновным в этом был антивирус COMODO. После удаления этого и установки другого все начало работать нормально. Итак, все пользователи Gradle — пожалуйста, будьте осторожны с COMODO, потому что даже отключенный он может вызвать проблемы при использовании Gradle. Имейте в виду 🙂
Ответ №2:
Я столкнулся с аналогичной проблемой при запуске тестовых классов. Я могу создать проект, но не смог запустить, поэтому после некоторых исследований я нашел одно из решений, которое заключается в удалении части WorkerThread-jar из папки .gradle / cache. Я попробовал, и у меня это сработало. Вы можете использовать приведенные ниже команды для решения этой проблемы.
- В терминале я вызвал
gradle test --info
команду,
В ответ я получаю журналы, в которых я искал
Рабочий демон Gradle
ключ, чтобы получить местоположение моего gradle-worker.jar . Обычно в Windows вы можете найти это в следующем расположении C:Users.gradlecaches\workerMaingradle-worker.jar .
Чтобы исправить это, один из подходов заключается в удалении самой папки workerMain и запуске тестовых классов.
Ответ №3:
Вам действительно не нужно отключать или удалять COMODO Antivirus. Просто выполните следующие шаги:
- Перейдите на панель клиента COMODO
- Откройте опцию расширенных задач в меню Задач.
- Просмотрите все активные задачи и выберите процесс Gradle, который блокируется.
- Щелкните правой кнопкой мыши на задаче и «Добавить в надежные файлы»
Ответ №4:
Я получил ту же ошибку, за исключением того, что в ней говорилось Gradle Worker 2. Я перезапустил свою командную строку (powershell), а затем попытался выполнить сборку снова с помощью gradle, и это сработало. Я изменил свои переменные среды, чтобы указать на версию Java, которую ожидал проект, и не подумал перезапускать — не уверен, имеет ли это какое-либо отношение к этому.
Ответ №5:
Ни один из других ответов здесь не был полезен в моем случае. Что мне нужно было сделать, так это отключить агент сопрограммы.
- Откройте настройки (File — Settings)
- Выберите Kotlin в разделе Сборка… — Отладчик — просмотры данных
- Установите флажок «Отключить агент сопрограммы»
В качестве альтернативы перейдите в свой файл build.gradle и обновите версию, используемую для зависимостей сопрограмм.