单元测试通用/同构节点包文件
Unit testing universal/isomorphic node package file
我正在尝试创建一个通用javascript(形式上称为同构javascript)包。这意味着它应该作为一个节点模块工作,但也可以在浏览器中平稳运行
假设它看起来像这样:
// 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.js
中的module
变量)
因果报应配置看起来像:
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();
});
令人敬畏的spec.js
var awesome = require('awesome');
describe('Awesome', function () {
it('should return 10', function () {
expect(awesome()).toBe(10);
});
});
由于某种原因,browserify
似乎无法正常工作。有什么建议吗?
此外,欢迎对universal javascript
进行任何改进!
这是不可能的。Karma将无法理解nodejs(服务器端)代码。因果报应在浏览器上运行。
相关文章:
- 使用Tabris-js,并尝试使用cordova文件和文件传输插件
- 使用ajax获取通过FTP上传的文件的文件大小——试图防止ajax中断自身
- 找不到Intel XDK cordova文件api 1.3.3文件
- 拖动'n将树项目作为文件放到文件夹中
- 仅为文本文件筛选文件上载
- JavaScript 文件或文件夹查找和导入
- 查看由 java 脚本文件上传器选择的文件的文件内容
- 使用Javascript将多个文件下载为zip文件或文件夹
- JavaScript文件的文件权限
- 单元测试通用/同构节点包文件
- AJAX/JS/PHP:如何替换发送到PHP文件的文件中的文本,并传递成功属性
- 如何使用javascript创建新的文件夹/文件
- 已从'上传文件;文件'img字段中未显示类型输入字段
- Bower安装的相同软件包文件结构不同
- 如何使用咕噜声制作可部署的包/文件夹
- 在一个文件(包)中下载css和js
- 将倒计时计时器的当前值存储在变量中,以便在模板工具包文件中使用
- 没有找到包文件
- 版本控制捆绑包文件
- 使用 uglify 保持 JavaScript 捆绑包文件美化