如何为浏览器制作符合 Karma 标准的测试工具?

How do I make a Karma compliant test harness for the browser?

我的猜测是 Karma 测试运行程序不会挂钩 Mocha 和 Jasmine,而是相反。

所以我假设 Mocha 和 Jasmine 调用这样的东西:

window.__karma__.testCasePassed(data);
window.__karma__.testCaseFailed(data);

然后 Karma 将报告这些事件。

我正在写 Suman,我想弄清楚我是否可以使 Suman Karma 兼容。

然而,当我浏览 Mocha 和 Jasmine 代码库时,我没有看到我正在寻找的证据。

你不会在 Mocha 或 Jasmine 本身的代码中找到任何东西,因为他们对 Karma 一无所知。当你在 Karma 中使用 Mocha 和 Jasmine 时,你必须使用 karma-mocha and karma-jasmine这些一方面是连接 Mocha 和 Jasmine,另一方面连接 Karma 的包。

如果你查看 karma-mocha,你会看到它有一个名为 createMochaReporterConstructor which creates a Mocha reporter that calls function on window.__karma__. (You can see it called here 的函数,第一个参数是 window.__karma__。)

this page 上有一些关于 Karma 框架 API 的文档(搜索 "Karma Framework API" 即可找到)。虽然这是一个非常简短的描述。如果是我,我会查看 karma-mochakarma-jasmine 的代码,以便更好地了解如何使用它。