问题描述
我正在尝试为使用 HTTP 侦听器作为消息源的流创建 munit 测试。
当我运行测试时,我得到:
org.mule.munit.runner.model.TestExecutionException: Error [HTTP:SERVICE_UNAVAILABLE] while running test 'AccServiceIntegrationTest-AccServiceFlowTest':HTTP GET on resource 'http://localhost:8303/AccService' 失败:服务不可用 ( 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)
响应。
我在这里做错了什么?当我测试侦听器的配置时 - 一切似乎都很好...
解决方法
确保pom中的MUnit依赖具有测试范围(即<scope>test</scope>
)。已知不这样做会导致此问题。
示例:
<dependency>
<groupId>com.mulesoft.munit</groupId>
<artifactId>munit-runner</artifactId>
<version>${munit.version}</version>
<classifier>mule-plugin</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.mulesoft.munit</groupId>
<artifactId>munit-tools</artifactId>
<version>${munit.version}</version>
<classifier>mule-plugin</classifier>
<scope>test</scope>
</dependency>
,
在您的 munit 测试中,请在“预期流源”下包含侦听器流。
<munit:enable-flow-sources >
<munit:enable-flow-source value="get:\folder:test-api-config" />
</munit:enable-flow-sources>
<munit:behavior> ```