我有一个非常大的测试套件,适用于大规模应用。
该套件包含超过20种不同的JS规范文件,这些文件通过数百次针对所述应用程序的测试运行。它已经达到了这样的程度:Jasmine(通过Grunt手表运行)无法运行所有测试而不会抛出“警告:未定义使用 - 强制继续”消息。
如果我运行SpecRunner.html文件,所有测试都通过,并且没有其他信息,即使PhantomJS说可以在那里找到更多信息。
对于可以编写的测试数量是否存在某种限制?
我正在使用grunt v。 ^ 0.4.5 和grunt-contrib-jasmin v。 ~0.6.3 。
module.exports = function(grunt) {
// Project configuration. Can be any arbitrary data.
// Things you might want to <% %> include in tasks.
// These data can be accessed by grunt.config.<property>
// Taksa are also configured here taking the format:
// <taskname>: { <target1>: {}, <target2>: {} }
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
js: {
lib: [
'PriceAnalytics.Web/Scripts/lib/jquery/*.min.js', // jquery needs to be loaded before bootstrap
'PriceAnalytics.Web/Scripts/lib/bootstrap/bootstrap.min.js',
'PriceAnalytics.Web/Scripts/lib/knockout/knockout*.js',
'PriceAnalytics.Web/Scripts/lib/underscore/underscore.min.js',
'PriceAnalytics.Web/Scripts/lib/underscore/underscore.mixin.deepExtend.js',
'PriceAnalytics.Web/Scripts/lib/globalize/globalize.js',
'PriceAnalytics.Web/Scripts/lib/highcharts/highcharts.js'
],
src: 'PriceAnalytics.Web/Scripts/src/**/*.js',
spec: 'PriceAnalytics.Web.Test/spec/**/*.js'
},
jasmine: {
src: '<%= js.src %>',
options: {
specs: '<%= js.spec %>',
vendor: '<%= js.lib %>',
//display: 'short',
summary: true
//keepRunner: true could probably leverage this option so that we don't have to manually maintain teh specrunner script tags
}
},
watch: {
gruntfile: {
files: '<%= jshint.gruntfile.src %>',
tasks: ['jshint:gruntfile']
},
src_spec: {
files: '<%= jshint.src_spec.src %>',
tasks: ['jshint:src_spec', 'jasmine']
}
}
});
// Load the plugins
grunt.loadNpmTasks('grunt-contrib-jasmine');
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s)
grunt.registerTask('default', ['jasmine']);
};
答案 0 :(得分:0)
原来我们的应用程序代码中存在一个错误,它从try / catch中抛出错误,从而导致测试失败/不运行。