如何使用`webpack`编译和运行`tap`测试?

时间:2016-04-06 16:10:00

标签: webpack babeljs tap

我无法找到任何正确的配置,可以在使用tap进行编译时在浏览器中运行tape(或webpack + babel)测试。

这是一个简单的例子:

import test from 'tap';

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

尝试编译以上错误,因为nodejs模块没有被填充:

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编译并运行browserify + babel测试,但我有兴趣使用webpack

或者,是否有任何纯ES6(即非nodejs)TAP库?

1 个答案:

答案 0 :(得分:4)

我使用业力通过webpack运行磁带测试。 This blog post帮助我设置它真的很有帮助 - 有tap,webpack和伊斯坦布尔的业力插件(如果你想覆盖)。基本上你告诉karma你正在使用webpack,将你的webpack配置添加到你的karma配置,并使webpack入口点成为一个需要你所有规范模块的模块。

我必须添加

node: {
    fs: "empty"
}

到我的测试webpack配置,以防止在此过程中的某处引用错误。