【问题标题】:Settings Karma to run tests with jasmine, requirejs and react设置 Karma 以使用 jasmine、requirejs 和 react 运行测试
【发布时间】:2016-03-19 23:40:00
【问题描述】:

我正在创建自己的bootstrap project,其中包括用于模块结构的 RequireJS、用于路由和简单静态视图的 Backbone、用于组件的 ReactJS。该项目运行良好,但我想添加单元测试支持以涵盖我在未来项目中的代码单元。我正在尝试在单元测试中添加 Karma 作为具有 Jasmine 和 RequireJS 支持的测试运行器(然后我将添加 TestUtils 用于组件测试)。

目前我在使用 Karma 时遇到了一些问题……它对我不起作用…… 我创建了带有业力配置的 Gruntfile.js:

karma: {
    unit: {
        configFile: 'karma.config.js'
    }
}

我还添加了带有配置的karma.config.js 文件。我还添加了带有 RequireJS 配置的文件以进行测试test-main.js

但我在尝试使用命令 grunt test 运行测试时遇到了麻烦:

咕噜测试 运行“业力:单位”(业力)任务 14 12 2015 15:06:17.594:WARN [karma]: 没有捕获的浏览器,打开 http://localhost:9876/ 14 12 2015 15:06:17.634:INFO [karma]: Karma v0.13.15 服务器在 http://localhost:9876/ 启动 14 12 2015 15:06:17.644:INFO [启动器]:启动浏览器 PhantomJS 14 12 2015 15:06:18.849:INFO [PhantomJS 1.9.8 (Windows 7 0.0.0)]:连接到套接字 Gvi8xqI0lfbPEEOGAAAA,ID 为 60807377 PhantomJS 1.9.8 (Windows 7 0.0.0): 执行 0 of 0 错误 (0.013 秒 / 0 秒)

并且在这个消息程序被卡住了......有人有用的建议吗???

PS:我使用本教程将 RequireJS 与 Karma 测试一起使用:http://karma-runner.github.io/0.8/plus/RequireJS.html

【问题讨论】:

标签: javascript unit-testing requirejs karma-runner karma-jasmine


【解决方案1】:

添加到karma.config.js

files: [
    {pattern: 'bower_components/**/*.js', included: false},
    {pattern: 'scripts/**/*.js', included: false},
    {pattern: 'spec/**/*Spec.js', included: false},
    'spec/test-main.js'
],

exclude: [
    'scripts/main.js'
],

frameworks: ['jasmine', 'requirejs'],

plugins: ['karma-phantomjs-launcher', 'karma-requirejs', 'karma-jasmine'],

从命令行运行:

npm install requirejs --save-dev

spec/test-main.js

var pathToModule = function (path) {
    console.log(path);
    return path.replace(/^spec\//, '../spec/').replace(/\.(js)$/, '');
};

...
allTestFiles.push(pathToModule(normalizedTestModule));
...

baseUrl: '/base/scripts',

并删除

urlArgs: ...

【讨论】:

  • 您好,感谢您的回答。我做了这些改变,但它仍然不适合我。我收到此错误消息:WARN [web-server]: 404: /base/scripts/spec/FirstSpec.js PhantomJS 1.9.8 (Windows 7 0.0.0) ERROR Error: Script error for "spec/FirstSpec" @ 987654321@ 在 c:/Users/dmytro.medvid/sites/evolution/node_modules/requirejs/require.js:140
  • 我已将所有更改提交到 github 存储库:github.com/web-jenezis/jenezis-project-bootstrap。 Grunt 配置位于 Gruntfile.js,karma 配置位于 karma.config.js 和 test-main.js 位于 spec 目录 (spec/test-main.js)。看起来规范文件有问题
  • 我发现了问题,我错过了一些东西......现在一切正常!!!你的回答很有帮助!!!谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 2018-10-04
  • 2016-10-06
相关资源
最近更新 更多