gpt4 book ai didi

javascript - Browserify 独立(UMD)模块的测试覆盖率

转载 作者:行者123 更新时间:2023-11-28 21:10:15 24 4
gpt4 key购买 nike

我使用 browserify standalone option在以下 gulp 任务中生成一个 UMD 模块:

gulp.task("bundle-source", function () {
var b = browserify({
standalone : 'inversify',
entries: __dirname + "/build/source/inversify.js",
debug: true
});

standalone 选项用以下代码包装库代码,以确保它可以作为 Node 模块、AMD 模块或 Global 加载:

 !function(n) {
if ("object" == typeof exports && "undefined" != typeof module) module.exports = n();
else if ("function" == typeof define && define.amd) define([], n);
else {
var e;
e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, e.inversify = n()
}
}(function() {
return function n(e, t, i) {
function r(u, p) {
if (!t[u]) {
if (!e[u]) {
var s = "function" == typeof require && require;
if (!p && s) return s(u, !0);
if (o) return o(u, !0);
var c = new Error("Cannot find module '" + u + "'");
throw c.code = "MODULE_NOT_FOUND", c
}
var f = t[u] = {
exports: {}
};
e[u][0].call(f.exports, function(n) {
var t = e[u][1][n];
return r(t ? t : n)
}, f, f.exports, n, e, t, i)
}
return t[u].exports
}
for (var o = "function" == typeof require && require, u = 0; u < i.length; u++) r(i[u]);
return r
}({

// The rest of the library code ...

我正在使用 istanbul 来尝试实现 100% 的测试覆盖率。我的问题是 UMD 代码片段的某些部分没有经过测试。例如,我没有使用 AMD,因此永远不会执行像下面这样的行:

\\ ...
else if ("function" == typeof define && define.amd) define([], n);
\\ ...

\\ ...
if (!e[u]) {
var s = "function" == typeof require && require;
if (!p && s) return s(u, !0);
if (o) return o(u, !0);
var c = new Error("Cannot find module '" + u + "'");
throw c.code = "MODULE_NOT_FOUND", c
}
\\ ...

这使我无法实现 100% 的测试覆盖率。你知道我怎样才能解决这个问题吗?

谢谢!

最佳答案

我建议您考虑实现伊斯坦​​ bool 的 ignoring features .该页面专门讨论了忽略 UMD 包装器,尽管在 browserify 的情况下,您可能需要做额外的工作才能实现这一点,例如在没有 standalone 的情况下制作 bundle 并自己实现 UMD 包装器(使用 ForbesLindesay/umd 或否则)。

关于javascript - Browserify 独立(UMD)模块的测试覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33034518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com