我的网络应用程序中几乎没有独立的模块,我想单独测试它们。与Karma有可能吗?
详情
部分gulpfile.js
和karma.conf.js
:
//gulpfile.js
gulp.task('test', function (done) {
new karmaServer({
configFile: __dirname + '/source/__test__/karma.conf.js',
singleRun: true
}, done).start();
});
//karma.conf.js
module.exports = function(config) {
config.set({
browsers: ['Chrome', 'Firefox'],
frameworks: ['mocha', 'chai'],
basePath: '.',
files: [
'../js/**/*.js',
'./**/*.spec.js'
]
});
};
提供了config build karma服务器,该服务器提供来自*.js
目录的../js
和*.spec.js
个文件中的所有./
个文件。这几乎没有问题,除了所有模块都在一个浏览器实例中同时加载,就像它们在应用程序中工作一样。我想要的是允许我仅为一个模块创建测试并仅加载给定模块所需的文件。像这样的Smth:
//hello.js
function greet(name) {
return 'Hello, ' + name + '!';
}
//hello.specs.js
load('../hello.js'); // I'm going to test it only. Let browser load it
describe('greeter', function () {
it('should say Hello to the World', function () {
expect(greet('World')).to.equal('Hello, World!');
});
});
我知道每个模块可以创建一个gulp任务,但是我有很多小.js
个文件,看起来更容易单独测试它们。我是否以错误的方式使用Karma?或许我错过了全球性的东西?