【发布时间】:2014-07-07 06:13:21
【问题描述】:
我正在使用 grunt 构建我的 angularjs 应用程序。我已经使用 karma 为我的应用程序创建了单元测试套件。我正在尝试为我的应用程序设置持续集成。在 Jenkins 中执行 CI 之前,我尝试使用 grunt 在本地构建.
1.将app文件夹中的所有文件复制到dist中(通常由grunt task 'grunt build'完成) 2.在 dist 文件夹上运行单元测试。 3.构建工件。
我正在寻找示例项目,但找不到任何关于使用 grunt 构建测试套件和应用程序的内容?任何参考帮助都会很棒。
使用 grunt 构建应用程序时,我们是否必须在 dist 文件夹或本地应用程序文件夹上运行测试? karma.conf.js 文件是否应该进入 dist 文件夹??
grunt.registerTask('test', [
'clean:server',
'concurrent:test',
'autoprefixer',
'connect:livereload',
'karma:continuous',
'apimocker',
'protractor:run'
]);
### Project structure;
我的项目
|
|--应用
| |--bower_components
| |--脚本
|
|--dist
| |--bower_components
| |--脚本
|
|--node_modules
|
|--测试
| |--规格
|
|--gruntfile.js
|
|--karma.conf.js
grunt.registerTask('CI', [
'clean:dist',
'useminPrepare',
'concurrent:dist',
'autoprefixer',
'concat',
'ngmin',
'copy:dist',
'cdnify',
'cssmin',
'rev',
'usemin',
'test',
'buildArtifacts'
]);
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', 'requirejs'],
files: [
{pattern: 'app/bower_components/jquery/dist/jquery.js', included: false},
{pattern: 'app/bower_components/angular/angular.js', included: false},
{pattern: 'app/bower_components/angular-mocks/angular-mocks.js', included: false},
{pattern: 'app/bower_components/jasmine/lib/jasmine-core/jasmine.js', included: false},
{pattern: 'app/bower_components/jasmine-jquery/lib/jasmine-jquery.js', included: false},
{pattern: 'app/scripts/*.js', included: false},
{pattern: 'app/scripts/**/*.js', included: false},
{pattern: 'test/**/*Spec.js', included: false},
{pattern: 'test/test-main.js', included: true},
],
exclude: [
'app/scripts/main.js',
'app/scripts/*min.js',
'app/scripts/**/*min.js'
],
preprocessors: {},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
plugins: [
'karma-chrome-launcher',
'karma-script-launcher',
'karma-jasmine',
'karma-requirejs'
],
singleRun: false
}
);
};
【问题讨论】:
标签: angularjs unit-testing gruntjs karma-runner