【问题标题】:"Failed to get configuration" using Wolkenkit client in Mocha test through Node通过 Node 在 Mocha 测试中使用 Wolkenkit 客户端“获取配置失败”
【发布时间】:2020-06-08 08:05:40
【问题描述】:

我正在尝试通过 Node 中的 Mocha 测试与我的 Wolkenkit 应用程序交互。

按照tutorial on client connections,运行测试时出现以下错误:

Error: Failed to get configuration.
  at ConfigurationWatcher.wentOffline (node_modules/wolkenkit-client/dist/ConfigurationWatcher.js:113:28)
  at /home/aef/Projects/experiments/wolkenkit_bullet/node_modules/wolkenkit-client/dist/ConfigurationWatcher.js:101:16
  at tryCatch (node_modules/es6-promise/dist/es6-promise.js:409:12)
  at invokeCallback (node_modules/es6-promise/dist/es6-promise.js:424:13)
  at publish (node_modules/es6-promise/dist/es6-promise.js:398:7)
  at publishRejection (node_modules/es6-promise/dist/es6-promise.js:339:3)
  at flush (node_modules/es6-promise/dist/es6-promise.js:128:5)
  at processTicksAndRejections (internal/process/task_queues.js:79:11)

非常感谢任何有关解决此问题的帮助。

我在package.json中添加了以下依赖:

"devDependencies": {
  "chai": "^4.2.0",
  "mocha": "^7.0.1"
},
"dependencies": {
  "wolkenkit": "^3.1.2",
  "wolkenkit-client": "^3.1.0"
},

我的测试代码如下所示:

'using strict';

const expect = require('chai').expect;
const wolkenkit = require('wolkenkit-client');

describe("wolkenkit app", () => {
    it("first test", async () => {
        const app = await wolkenkit.connect({host: 'local.wolkenkit.io', port: 3000});
    });
})

【问题讨论】:

    标签: node.js mocha.js domain-driven-design wolkenkit


    【解决方案1】:

    虽然在 Node 中设置环境变量不起作用,但问题已通过在系统环境中设置 NODE_TLS_REJECT_UNAUTHORIZED0 解决,例如:

    export NODE_TLS_REJECT_UNAUTHORIZED=0
    

    感谢@mattwagl 指出正确的方向。

    【讨论】:

      【解决方案2】:

      此错误可能是由您的本地自签名证书引起的。客户端无法连接到后端,因为它不信任此证书。您可以像这样使用process.env.NODE_TLS_REJECT_UNAUTHORIZED 标志绕过此检查...

      process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
      
      suite('integration', () => {
        let application;
      
        suiteSetup(async () => {
          application = await wolkenkit.connect({ host: 'local.wolkenkit.io', port: 3000 });
        });
      

      另一种选择是将证书添加到您的受信任证书中。

      【讨论】:

      • 遗憾的是,这并不能解决问题。在代码和实际环境中设置环境变量都没有改变错误消息。
      • 应用程序是否正确启动? wolkenkit start 的输出是什么?它是否以Waiting for https://local.wolkenkit.io:3000/ to reply...Running at https://local.wolkenkit.io:3000/ 结尾?如果这是输出,则表示您的应用程序运行正常。然后将浏览器指向https://local.wolkenkit.io:3000/。你看到了什么?您可以使用您的浏览器来验证证书是否有效并且是否正确交付。
      • wolkenkit start 工作正常。我可以在本地访问 wolkenkit-console,手动发送命令并查看正在构建的投影。尽管如此,当我尝试连接时,wolkenkit-client 仍会产生错误。 wolkenkit start 的输出中没有显示任何关于此的内容
      • 你能发布整个测试套件吗?
      • 发布的是当时的整个测试套件。这只是我尝试从 Node 连接到 Wolkenkit 的第一步。
      猜你喜欢
      • 1970-01-01
      • 2015-09-21
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 2019-03-22
      • 2019-07-21
      相关资源
      最近更新 更多