gpt4 book ai didi

javascript - 单元测试通用/同构 Node 包文件

转载 作者:太空宇宙 更新时间:2023-11-04 02:14:02 25 4
gpt4 key购买 nike

我正在尝试创建一个 universal javascript (正式名称为同构 javascript)包。这意味着它应该作为 Node 模块工作,但也可以在浏览器中顺利运行

假设它看起来像这样:

// awesome.js
module.exports = function () {
return 10;
}

安装:

$> npm install awesome

并包含它:

// index.js
var awesome = require('awesome')

要在浏览器中使用它,您必须使用browserify

$> ./node_modules/.bin/browserify index.js -o bundle.js",

到目前为止没有问题。然而,当涉及到使用 Karma 和 Jasmine 进行单元测试时,我得到一个未定义的 module (这是来自 awesome.jsmodule 变量)

karma 配置如下:

gulp.task('test', function () {
var Server = require('karma').Server;
new Server({
autoWatch: true,
browsers: [
'Chrome'
],
coverageReporter: {
type: 'lcov',
dir: 'coverage/'
},
frameworks: [ 'browserify', 'jasmine'],
files: [
'awesome.js',
'tests/spec-helpers.js',
'tests/awesome.spec.js'
],
junitReporter: {
outputFile: 'target/junit.xml'
},
preprocessors: {
'awesome.js': 'coverage',
'tests/awesome.spec.js': ['browserify']
},
browserify: {
debug: true,
transform: [ 'brfs' ]
},
reporters: [
'junit',
'coverage'
],
singleRun: false,
}).start();
});

awesome-spec.js

var awesome = require('awesome');

describe('Awesome', function () {
it('should return 10', function () {
expect(awesome()).toBe(10);
});
});

由于某种原因,browserify 似乎无法正常工作。有什么建议吗?

此外,也欢迎有关通用 JavaScript 的任何改进!

最佳答案

这是不可能的。 Karma 将无法理解 Node js(服务器端)代码。由于 karma 在浏览器上运行。

关于javascript - 单元测试通用/同构 Node 包文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36580187/

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