2016-04-06 15 views
2

Ich kann keine richtige Konfiguration zum Ausführen tap (oder tape) Tests im Browser beim Kompilieren mit webpack + babel finden.Wie man `tap` Tests mit` webpack` kompiliert und ausführt?

ist hier ein totes einfaches Beispiel:

import test from 'tap'; 

test('random test', function(t){ 
    t.ok(true, 'great!'); 
}); 

Der Versuch, die oben generieren folgende Fehler zu kompilieren als NodeJS Module nicht polyfilled sind:

ERROR in ./~/tap/lib/test.js 
Module not found: Error: Cannot resolve module 'child_process' in /Users/arnaud/projects/chrome-tap/node_modules/tap/lib 
@ ./~/tap/lib/test.js 30:12-36 

ERROR in ./~/tap/lib/test.js 
Module not found: Error: Cannot resolve module 'module' in /Users/arnaud/projects/chrome-tap/node_modules/tap/lib 
@ ./~/tap/lib/test.js 33:13-30 

ERROR in ./~/tap/lib/test.js 
Module not found: Error: Cannot resolve module 'fs' in /Users/arnaud/projects/chrome-tap/node_modules/tap/lib 
@ ./~/tap/lib/test.js 34:9-22 

Oder mit tape:

ERROR in ./~/tape/lib/default_stream.js 
Module not found: Error: Cannot resolve module 'fs' in /Users/arnaud/projects/chrome-tap/node_modules/tape/lib 
@ ./~/tape/lib/default_stream.js 2:9-22 

Ich kann kompilieren und tape Tests mitausführenaber ich würde stattdessen webpack verwenden möchten.

Gibt es alternativ eine reine ES6-TAP-Bibliothek (dh keine Nodejs)?

Antwort

3

Ich verwende Karma, um Tape-Tests über Webpack auszuführen. This blog post war wirklich hilfreich bei der Einrichtung - es gibt Karma-Addons für Tap, Webpack und für Istanbul (wenn Sie Coverage wollen). Im Grunde sagen Sie Karma, dass Sie Webpack verwenden, fügen Sie Ihre Webpack-Konfiguration zu Ihrer Karma-Konfiguration hinzu und machen Sie den Webpack-Einstiegspunkt zu einem Modul, das alle Ihre Spezifikationsmodule erfordert.

hatte ich

node: { 
    fs: "empty" 
} 

zu meinen Tests webpack config fügen Sie einen Verweis Fehler irgendwo auf dem Weg zu verhindern.