Igo*_*tov 46 javascript jasmine-node karma-runner
Karma无法识别JSFileSpec.js文件中的'require'语句.运行karma.conf.js:
(function() {
describe("DummyEmitter creation", function(){
return it("creation", function(){
var DummyEmitter = require('Util.DummyEmitter');
var dummy = new DummyEmitter('someName');
return expect(dummy).toBeDefined();
});
});
})();
Run Code Online (Sandbox Code Playgroud)
ReferenceError:未定义require
San*_*mar 46
当我尝试require('module_name')在测试用例中使用(CommonJS样式模块)并使用Karma运行它时,我遇到了同样的问题.
原因是require浏览器无法使用该功能(它是undefined).为了将它提供给浏览器,我们可以在Karma使用karma-browserify在浏览器中运行测试用例之前浏览测试js文件.
使用安装karma-browserify npm install karma-browserify --save-dev
更新karma.conf.js
frameworks: ['jasmine', 'browserify'],
preprocessors: {
'app/tests/*.js': [ 'browserify' ]
},
plugins: [..., 'karma-browserify'],
Run Code Online (Sandbox Code Playgroud)
在这些更改之后,浏览器化的文件由Karma在浏览器中运行,其中require定义了,并且测试用例成功运行
小智 23
你可能正在使用一个在karma的bin目录中拾取东西的glob模式.尝试使用绝对路径执行测试以查看是否修复了它.
如果是这样,那么你知道你的glob模式正在抓住你不想要的东西.
例如改变
{pattern: '**/**/*_test.js'},
Run Code Online (Sandbox Code Playgroud)
至
{pattern: 'stuff/dashboard/home-page_test.js'},
Run Code Online (Sandbox Code Playgroud)
看看是否能解决您的问题.
Karma是一个在浏览器中运行测试的测试运行器.无论您设置什么浏览器都不知道需要的功能是什么.
要在节点上使用jasmine,请尝试使用jasmine-node.https://github.com/mhevery/jasmine-node
要让业力运行茉莉花节点测试,请尝试(等待它......)jasmine-node-karma.https://npmjs.org/package/jasmine-node-karma
这是我找到上述信息的茉莉维基页面. https://github.com/pivotal/jasmine/wiki
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
51488 次 |
| 最近记录: |