我想使用 grunt 自动运行 jasmine 测试。我以前从来没有这样做过,而且我经常遇到我不明白的错误......我想使用grunt-contrib-jasmine
and grunt-template-jasmine-requirejs
。我将此添加到我的 grunt 文件中:
jasmine: {
jasmine_tests: {
src: 'public/js/app/**/*.js',
options: {
specs: 'spec/*Spec.js',
helpers: 'spec/*Helper.js',
template: require('grunt-template-jasmine-requirejs'),
templateOptions: {
requireConfig: {
baseUrl: '',
paths: {
"i18n": "../libs/require-i18next/require-i18next/i18next",
"i18next-builder": "../libs/require-i18next/require-i18next/i18next-builder",
"jquery": "../libs/jquery/dist/jquery",
...
},
shim: {
"jquerymobile": ["jquery"],
....
}
}
}
}
}
},
当我运行时,grunt jasmine
我得到数百个错误。似乎无法加载单个文件。
运行“jasmine:jasmine_tests”(茉莉花)任务
通过 PhantomJS 测试茉莉花规格
错误:脚本错误:非法路径或脚本错误:['jquery'] at ..........\C:\Users\Garrarufa\Documents\WebstormWorkspace\website3_SpecRunner.html:38 ....... ...\C:\Users\Garrarufa\Documents\WebstormWorkspace\website3.grunt\grunt-contrib-jasmine\require.js:12 v ..........\C:\Users\Garrarufa\Documents \WebstormWorkspace\website3.grunt\grunt-contrib-jasmine\require.js:30 错误:脚本错误:非法路径或脚本错误:['underscore'] at ..........\C:\Users\ Garrarufa\Documents\WebstormWorkspace\website3_SpecRunner.html:38 ..........\C:\Users\Garrarufa\Documents\WebstormWorkspace\website3.grunt\grunt-contrib-jasmine\require.js:12 v 。 .........\C:\Users\Garrarufa\Documents\WebstormWorkspace\website3.grunt\grunt-contrib-jasmine\require.js:30
...
错误:超时:模块加载超时:i18n!locales_unnormalized2,datatables,sortDate...
...
http://requirejs.org/docs/errors.html#timeout at ..........\C:\Users\Garrarufa\Documents\WebstormWorkspace\website3_SpecRunner.html:38 ....... ...\C:\Users\Garrarufa\Documents\WebstormWorkspace\website3.grunt\grunt-contrib-jasmine\require.js:12 v ..........\C:\Users\Garrarufa\Documents \WebstormWorkspace\website3.grunt\grunt-contrib-jasmine\require.js:14 C ..........\C:\Users\Garrarufa\Documents\WebstormWorkspace\website3.grunt\grunt-contrib-jasmine \require.js:14
警告:PhantomJS 超时,可能是由于未完成的异步规范。使用 --force 继续。
由于警告而中止。
我的规范在文件夹.../website3/specs
中,我想要测试的 requirejs 模块定义在文件夹中.../webiste3/public/js/app/**
。出了什么问题,我必须改变什么?我真的不明白我必须在 gruntfile 和 requireConfig 中定义什么。也许这与它有关?
我的目录结构:
- website3
- .grunt
+ grunt-contrib-jasmine
+ node_modules
- public
- js
- app
+ collections
- config
> config.js
+ ...
- views
+ ...
> AddVehicleView.js
> ...
+ libs
> index.html
+ server
- spec
+ helpers
- support
> jasmine.json
> AddVehicleViewSpec.js
> .bowerrc
> ...
> _SpecRunner.html
> Gruntfile.js
> package.json