-je utiliser la browserify standalone option dans les tâches de Gulp suivantes pour générer un module UMD:couverture de test de autonome Browserify (UMD) modules
gulp.task("bundle-source", function() {
var b = browserify({
standalone : 'inversify',
entries: __dirname + "/build/source/inversify.js",
debug: true
});
L'option autonome enveloppe le code de la bibliothèque avec le code suivant pour vous assurer qu'il peut être chargé en tant que module de noeud, un module AMD ou 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 ...
J'utilise istanbul pour essayer d'obtenir une couverture de test 100%. Mes problèmes sont que certaines parties de l'extrait de code UMD ne sont pas testés. Par exemple, je ne suis pas en utilisant AMD si des lignes comme celles ci-dessous ne sont jamais exécutées:
\\ ...
else if ("function" == typeof define && define.amd) define([], n);
\\ ...
ou
\\ ...
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
}
\\ ...
Ce qui me empêche d'atteindre une couverture de test 100%. Savez-vous comment puis-je contourner ce problème?
Merci!
Est-ce vraiment utile d'essayer de couvrir le passe-temps de browserify? – JMM
Eh bien, c'est pour un projet open-source et pouvoir afficher le badge de couverture de test 100% encouragera certaines personnes à faire confiance au projet et je crois que c'est quelque chose de vraiment précieux. –
À mon avis, c'est une sorte de métrique stupide, car tout dépend de la confiance que les utilisateurs accordent à la mise en place de bons tests. S'ils sont prêts à vous faire confiance sur la base d'un badge, peut-être qu'ils sont prêts à vous faire confiance pour couvrir les choses importantes et ne pas s'inquiéter de quelque chose d'insignifiant comme un emballage UMD. – JMM