【发布时间】:2021-06-03 02:51:58
【问题描述】:
我正在尝试为使用 HTTP 侦听器作为消息源的流创建 MUnit 测试。
当我运行测试时,我得到:
org.mule.munit.runner.model.TestExecutionException:运行测试“AccServiceIntegrationTest-AccServiceFlowTest”时出现错误 [HTTP:SERVICE_UNAVAILABLE]:资源“http://localhost:8303/AccService”上的 HTTP GET 失败:服务不可用( 503).
我的 HTTP 侦听器配置如下所示:
<http:listener-config name="ApiHttpListenerConfig" doc:name="HTTP Listener config" doc:id="b72fd4c2-e250-4591-b780-de4a40f3a805" >
<http:listener-connection host="localhost" port="8303" />
</http:listener-config>
还有我的听众本身:
<http:listener doc:name="Listener" doc:id="91f3dc92-d221-4961-b33e-61e65040f481" config-ref="ApiHttpListenerConfig" path="/AccService"/>
我的测试中的 HTTP 请求配置如下所示:
<http:request-config name="HTTPTestRequestConfiguration" doc:name="HTTP Request configuration" doc:id="d7ccc980-3103-4367-8ecc-e0c031f093e9">
<http:request-connection host="localhost" port="8303" />
</http:request-config>
以及请求本身:
<http:request method="GET" doc:name="Request" doc:id="912fe4a9-5e6b-4909-9dc7-a6f44642cf40" config-ref="HTTPTestRequestConfiguration" path="/AccService"/>
现在测试流程如下所示:
<munit:test name="AccServiceIntegrationTest-AccServiceFlowTest" doc:id="5e2d057f-38b9-494f-a889-25579960a96f" description="Test">
<munit:execution >
<file:read doc:name="Read acc-service-request.xml" doc:id="66ad1782-cefc-42dd-8a9d-52f6b6e191f4" config-ref="XMLFileTest" path="resources/acc-service-request.xml"/>
<http:request method="GET" doc:name="Request" doc:id="912fe4a9-5e6b-4909-9dc7-a6f44642cf40" config-ref="HTTPTestRequestConfiguration" path="/AccService"/>
<flow-ref doc:name="Flow-ref to FleetServiceFlow" doc:id="b8536d75-c09f-4c1a-894e-f7d25392d6b7" name="AccServiceFlow"/>
</munit:execution>
</munit:test>
我得到的只是Service unavailable (503) 回复。
我在这里做错了什么?当我测试监听器的配置时 - 一切似乎都很好......
【问题讨论】:
-
应用程序是否使用 API 自动发现?
-
另外,请从应用程序的 pom.xml 添加一个 MUnit 依赖项的 sn-p。
-
您似乎正在 Munit 内部执行 HTTP 请求,因此您需要启用侦听器所在的流。默认情况下,Munit 不会启用配置了侦听器的流,因此您将遇到服务不可用错误。
标签: mule mule-studio mulesoft mule4 munit