运行Gradle测试时管道出现错误

时间:2014-07-03 07:55:35

标签: java unit-testing gradle testng

我在gradle中运行测试时遇到了问题。我知道在其他机器上我的gradle配置可以正常工作但不幸的是在我的机器上。我们有junit test和testNG,当他们尝试执行时,他们都会产生这样的堆栈跟踪:

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)
编辑:好的我想我找到了导致这个问题的原因 - 它是Antivirus 。当我禁用它时,脚本向前移动了一点但是以:

结束
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

使用谷歌搜索此错误不会给我任何东西(只有一些旧的gradle 1.1错误信息)。有人遇到过这种问题吗?

4 个答案:

答案 0 :(得分:6)

哇,经过一整天的挣扎,我想我终于找到了导致问题的原因。有罪的是防病毒软件 - COMODO。卸载它并安装另一个后,一切都开始正常工作。所有Gradle用户 - 请注意COMODO,因为即使已禁用,也可能在使用Gradle时出现问题。请注意:)

答案 1 :(得分:5)

在运行测试类时,我遇到了类似的问题。我可以构建项目,但无法运行,因此在进行一些研究之后,我找到了一种解决方案,即从.gradle / cache文件夹中删除一些workerThread-jar。我尝试了,对我有用。您可以使用以下命令来解决此问题。

  1. 在终端中,我调用了gradle test --info命令

作为回应,我收到了日志,在其中搜索

Gradle worker Daemon

键,获取我的gradle-worker.jar的位置。通常,在Windows中,您可以在以下位置C:\ Users \ .gradle \ caches \\ workerMain \ gradle-worker.jar下找到它。

要解决此问题,一种方法是删除workerMain文件夹本身,然后运行测试类。

答案 2 :(得分:0)

我遇到了同样的错误,只是说Gradle Worker2。我重新启动了命令行(powershell),然后尝试再次使用gradle进行构建,并且该命令可以正常工作。我已经更改了环境变量,以指向该项目所期望的Java版本,并且没有想到要重新启动-不确定是否与此有关。

答案 3 :(得分:0)

您确实不需要禁用或删除COMODO Antivirus。只需执行以下步骤:

  1. 转到COMODO客户面板
  2. 打开“任务”菜单下的“高级任务”选项。
  3. 查看所有活动任务并选择被阻止的Gradle进程。
  4. 右键单击该任务,然后单击“添加到受信任的文件”