Ошибка неработающего канала при запуске Gradle test

#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. Я попробовал, и у меня это сработало. Вы можете использовать приведенные ниже команды для решения этой проблемы.

  1. В терминале я вызвал gradle test --info команду,

В ответ я получаю журналы, в которых я искал

Рабочий демон Gradle

ключ, чтобы получить местоположение моего gradle-worker.jar . Обычно в Windows вы можете найти это в следующем расположении C:Users.gradlecaches\workerMaingradle-worker.jar .

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

Ответ №3:

Вам действительно не нужно отключать или удалять COMODO Antivirus. Просто выполните следующие шаги:

  1. Перейдите на панель клиента COMODO
  2. Откройте опцию расширенных задач в меню Задач.
  3. Просмотрите все активные задачи и выберите процесс Gradle, который блокируется.
  4. Щелкните правой кнопкой мыши на задаче и «Добавить в надежные файлы»

Ответ №4:

Я получил ту же ошибку, за исключением того, что в ней говорилось Gradle Worker 2. Я перезапустил свою командную строку (powershell), а затем попытался выполнить сборку снова с помощью gradle, и это сработало. Я изменил свои переменные среды, чтобы указать на версию Java, которую ожидал проект, и не подумал перезапускать — не уверен, имеет ли это какое-либо отношение к этому.

Ответ №5:

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

  1. Откройте настройки (File — Settings)
  2. Выберите Kotlin в разделе Сборка… — Отладчик — просмотры данных
  3. Установите флажок «Отключить агент сопрограммы»

введите описание изображения здесь

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