如何为浏览器制作符合 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-mocha
和 karma-jasmine
的代码,以便更好地了解如何使用它。
我的猜测是 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-mocha
和 karma-jasmine
的代码,以便更好地了解如何使用它。