我正在尝试模拟以下流程,但在运行测试用例时出现异常。
Error:[module-alliant-logger.xml:52]:无法使用错误类型“ALLIANT-LOGGER:PARSING”:命名空间已存在。 导致:org.mule.runtime.core.api.config.ConfigurationException:[module-alliant-logger.xml:52]:无法使用错误类型“ALLIANT-LOGGER:PARSING”:命名空间已存在。
市政流量:
<munit:test name="munit-demo-test-suiteTest" doc:id="5133bc2a-1b4a-4efa-bc9e-a293bd3f0764" >
<munit:behavior>
<munit-tools:mock-when doc:name="Mock when transform" doc:id="b0513fbf-a209-494b-b39f-c5c20f69256a" processor="ee:transform">
<munit-tools:with-attributes >
<munit-tools:with-attribute whereValue="Transform Message" attributeName="doc:name" />
<munit-tools:with-attribute whereValue="b228d101-a703-4824-8687-4da4f4792104" attributeName="doc:id" />
</munit-tools:with-attributes>
<munit-tools:then-return >
<munit-tools:payload value='#[%dw 2.0 output application/json --- { "ErrorSource" : "Unknown-ErrorSource", "ErrorDescription":"Unknown-ErrorDescription" }]' mediaType="application/json" />
</munit-tools:then-return>
</munit-tools:mock-when>
<munit-tools:mock-when doc:name="Mock when : logger:insert-logs" doc:id="86d27f7c-5560-4094-8b3b-3435e08122e3" processor="alliant-logger:insert-logs">
<munit-tools:with-attributes >
<munit-tools:with-attribute whereValue="5bc0671a-6ccf-4ac0-8077-94e918f50c44" attributeName="doc:id" />
<munit-tools:with-attribute whereValue="Alliant_logger_Config" attributeName="config-ref" />
</munit-tools:with-attributes>
<munit-tools:then-return >
<munit-tools:payload value="Success" mediaType="application/octet-stream" />
<munit-tools:attributes value='#[{ "headers": { "content-type": "application/json", "user-agent": "PostmanRuntime/7.36.1", "accept": "*/*", "cache-control": "no-cache", "postman-token": "c30d4d25-4bf0-4dd8-b118-addddbabae35", "host": "localhost:8083", "accept-encoding": "gzip, deflate, br", "connection": "keep-alive", "content-length": "69" }, "clientCertificate": null, "method": "POST", "scheme": "http", "queryParams": {}, "requestUri": "/api/Create", "queryString": "", "version": "HTTP/1.1", "maskedRequestPath": "/Create", "listenerPath": "/api/*", "relativePath": "/api/Create", "localAddress": "/127.0.1.1:8083", "uriParams": {}, "rawRequestUri": "/api/Create", "rawRequestPath": "/api/Create", "remoteAddress": "/127.0.1.1:55537", "requestPath": "/api/Create" }]' />
</munit-tools:then-return>
</munit-tools:mock-when>
</munit:behavior>
<munit:execution>
<munit:set-event doc:name="Set Event" doc:id="ec2d7f54-dcf9-4a46-ba45-aa7a5952be0d">
<munit:payload value='#[%dw 2.0 output application/json --- { "ErrorSource": "Source", "ErrorDescription": "Description" }]' mediaType="application/json" />
</munit:set-event>
<flow-ref doc:name="Flow Reference" doc:id="e306b636-d827-4d51-a7b1-28e2730200a0" name="munit-demoFlow1"/>
</munit:execution>
<munit:validation>
<munit-tools:assert-that doc:name="Assert that" doc:id="c7e2f3d0-fdfb-4f63-95ec-a97bf3f5b50e" expression="#[payload]" is="#[MunitTools::notNullValue()]"/>
</munit:validation>
</munit:test>
下面显示主流程,我想模拟。我创建了一个单独的 Mule 应用程序来记录错误。现在,该应用程序在此演示中用作模块(依赖项)。 “插入日志”
<flow name="munit-demoFlow1"
doc:id="945f8d10-a965-46ef-a2a8-8156afe41965">
<http:listener doc:name="Listener"
doc:id="767336a9-5a33-4913-b55e-41f94f7a6625"
config-ref="HTTP_Listener_config" path="/LoggerTesting" />
<ee:transform doc:name="Transform Message"
doc:id="b228d101-a703-4824-8687-4da4f4792104">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
{
"ErrorSource" : "Unknown-ErrorSource",
"ErrorDescription":"Unknown-ErrorDescription"
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<alliant-logger:insert-logs
doc:name="Insert Logs" doc:id="5bc0671a-6ccf-4ac0-8077-94e918f50c44"
config-ref="Alliant_logger_Config" />
<set-payload doc:name="Set Payload"
doc:id="94400a58-db42-4a7e-b4db-42a2242d508b"
value="#[%dw 2.0 output application/java --- if(payload as String == 'Success' as String) 'its working' else 'its not working']" />
</flow>
Alliant 记录器作为模块。
我正在使用本地主机 URL 来访问它。我并行运行两个应用程序,因此工作正常。
我知道,“插入日志”抛出错误,但无法弄清楚其发生的原因。由于此错误,我无法调试测试用例。如果我评论“插入日志”,那么它工作正常,但我想模拟“插入日志”。
我在 MUnit 中的连接器模拟中遇到了同样的错误。 “无法使用错误类型‘xxxxxxx:PARSING’:命名空间已存在。” 在Mule Runtime 4.4中没有问题,但是在4.5和4.6中出现错误。