简短而看似愚蠢的问题,因为如此简单而且您会认为无处不在:是否有人获得了任何类型的代码覆盖以在 RequireJS 前端项目(非 NodeJS)中工作?
由于 JS 世界中 TDD 方法的流行以及 AMD 开发的接管,这似乎是一个愚蠢的问题。
我已经尝试了一百万种方法,都缺乏。我的项目是一个带有 Jasmine 单元测试的 Backbone 项目:
1) 带有 Coverage 插件的 JSTD。JSTD 无法正确加载和检测 AMD 模块。如果我在单个 js 文件(由 RequireJS 优化器组合)上运行 JSTD,那么代码覆盖率会很好地工作,除非随后收集覆盖率并在整个文件上定义指标。太好了,那没用,因为它包括 3rd 方库,而且我不能针对单个单元来帮助测试开发。啊。
2) JSCoverage - 完全失败,不喜欢 AMD 模块。
3) Chrome 特定和 Firebug 特定的“实时”仪器 - 失败,不喜欢 AMD 模块。
我尝试的每一种方法似乎都需要大量的定制工作。所以也许我需要从头开始定制解决方案?
下面的方法怎么样:扩展 RequireJS 优化器以检测代码并创建覆盖。这将是内存检测,可以使用 require.config({ instrument: true }) 标志启用。每次 require 加载一个模块时,它都会自动检测它并将其放置在其模块存储库中。覆盖率统计信息收集在全局 require 对象下的一个对象中,并且可以从任何地方访问,例如在 Jasmine 测试运行之后。
输入?