2016-04-06 40 views
2

我無法找到任何正確的配置在瀏覽器中運行tap(或tape)測試,同時使用webpack + babel進行編譯。如何用`webpack`編譯並運行`tap`測試?

這裏是一個死簡單的例子:

import test from 'tap'; 

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

試圖編譯上面產生以下錯誤作爲模塊的NodeJS不polyfilled:

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 

或用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 

我可以使用編譯並運行tape測試,但我有興趣使用webpack代替。

或者,是否有任何純粹的ES6(即非nodejs)TAP庫?

回答

3

我使用karma通過webpack運行磁帶測試。 This blog post對幫助我完成設置非常有幫助 - 有tap,webpack和istanbul(如果你想要覆蓋)的karma插件。基本上,你告訴你正在使用webpack的業力,將你的webpack配置添加到你的karma配置中,並使webpack入口點成爲一個需要你所有spec模塊的模塊。

我不得不添加

node: { 
    fs: "empty" 
} 

我測試的WebPack配置,以防止基準誤差沿途某處。