黄瓜默认发布到一些URL?

cucumber defaults publishing to some URL?

我正在尝试使用 Cucumber-jvm 6.11.0 生成报告,当我将这些属性放入 junit-platform.properties 时,它在我的机器上运行良好:

cucumber.publish.enabled=true
cucumber.plugin=pretty, json:build/reports/cucumber/report.json
cucumber.junit-platform.naming-strategy=long   

但是,当我在 Jenkins 上 运行 时,我在发布期间收到 ConnectException :

java.lang.RuntimeException: java.net.ConnectException: Connection timed out (Connection timed out)
    at io.cucumber.core.plugin.MessageFormatter.writeMessage(MessageFormatter.java:36)
    at io.cucumber.core.eventbus.AbstractEventPublisher.send(AbstractEventPublisher.java:51)
    at io.cucumber.core.eventbus.AbstractEventBus.send(AbstractEventBus.java:12)
    at io.cucumber.core.runtime.SynchronizedEventBus.send(SynchronizedEventBus.java:47)
    at io.cucumber.core.runtime.CucumberExecutionContext.emitTestRunFinished(CucumberExecutionContext.java:102)
    at io.cucumber.core.runtime.CucumberExecutionContext.finishTestRun(CucumberExecutionContext.java:74)
    at io.cucumber.junit.platform.engine.CucumberEngineExecutionContext.finishTestRun(CucumberEngineExecutionContext.java:98)
    at io.cucumber.junit.platform.engine.CucumberEngineDescriptor.after(CucumberEngineDescriptor.java:37)
    at io.cucumber.junit.platform.engine.CucumberEngineDescriptor.after(CucumberEngineDescriptor.java:10)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively(NodeTestTask.java:149)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively(NodeTestTask.java:149)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
...
Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.run(HttpURLConnection.java:1963)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.run(HttpURLConnection.java:1958)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1957)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1525)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1509)
    at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
    at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:329)
    at io.cucumber.core.plugin.UrlOutputStream.getResponseBody(UrlOutputStream.java:111)
    at io.cucumber.core.plugin.UrlOutputStream.sendRequest(UrlOutputStream.java:83)

我尝试了不同的属性组合,我看到它在我启用发布的那一刻开始发生,只有 :

cucumber.publish.enabled=true

我在 documentation 中找不到默认行为,一旦我们启用了发布:默认情况下发布到哪里?它真的尝试通过 http 上传吗? (我猜在 Jenkins 上 运行ning 时未配置代理,而在我的机器上 运行ning 时发现代理,因此行为不同)

为什么我只是尝试将 html 或 json 报告写入磁盘时仍然出现此错误?

当您启用报告发布时,它会将测试结果上传到 Cucumber 云服务,您将获得唯一的 URL,您(或您与之共享 link 的任何人)可以使用它来访问您的报告.

报告24小时内自毁。您可以在官方 Cucumber blog.

中找到更多详细信息