@@ -45,7 +45,7 @@ module.exports = function(grunt) {
4545 options : {
4646 jshintrc : '.jshintrc'
4747 } ,
48- all : [ 'src/**/*.js' , 'demo/js/*.js' , '!src/module/*' ]
48+ all : [ 'src/**/*.js' , 'demo/js/*.js' , 'test/browser/TestDemo.js' , ' !src/module/*']
4949 } ,
5050 connect : {
5151 watch : {
@@ -54,6 +54,11 @@ module.exports = function(grunt) {
5454 open : 'http://localhost:9000/demo/dev.html' ,
5555 livereload : 9001
5656 }
57+ } ,
58+ serve : {
59+ options : {
60+ port : 8000
61+ }
5762 }
5863 } ,
5964 watch : {
@@ -95,6 +100,19 @@ module.exports = function(grunt) {
95100 src : 'build/<%= buildName %>.js' ,
96101 dest : 'build/<%= buildName %>.js'
97102 }
103+ } ,
104+ shell : {
105+ testDemo : {
106+ command : function ( arg ) {
107+ arg = arg ? ' --' + arg : '' ;
108+ return 'phantomjs test/browser/TestDemo.js' + arg ;
109+ } ,
110+ options : {
111+ execOptions : {
112+ timeout : 1000 * 60
113+ }
114+ }
115+ }
98116 }
99117 } ) ;
100118
@@ -106,11 +124,25 @@ module.exports = function(grunt) {
106124 grunt . loadNpmTasks ( 'grunt-contrib-copy' ) ;
107125 grunt . loadNpmTasks ( 'grunt-contrib-yuidoc' ) ;
108126 grunt . loadNpmTasks ( 'grunt-preprocess' ) ;
127+ grunt . loadNpmTasks ( 'grunt-shell' ) ;
109128
110129 grunt . registerTask ( 'default' , [ 'test' , 'build' ] ) ;
111- grunt . registerTask ( 'test' , [ 'jshint' ] ) ;
130+ grunt . registerTask ( 'test' , [ 'build:dev' , 'connect:serve' , ' jshint' , 'test:demo '] ) ;
112131 grunt . registerTask ( 'dev' , [ 'build:dev' , 'connect:watch' , 'watch' ] ) ;
113132
133+ grunt . registerTask ( 'test:demo' , function ( ) {
134+ var updateAll = grunt . option ( 'updateAll' ) ,
135+ diff = grunt . option ( 'diff' ) ;
136+
137+ if ( updateAll ) {
138+ grunt . task . run ( 'shell:testDemo:updateAll' ) ;
139+ } else if ( diff ) {
140+ grunt . task . run ( 'shell:testDemo:diff' ) ;
141+ } else {
142+ grunt . task . run ( 'shell:testDemo' ) ;
143+ }
144+ } ) ;
145+
114146 grunt . registerTask ( 'build' , function ( mode ) {
115147 var isDev = ( mode === 'dev' ) ,
116148 isRelease = ( mode === 'release' ) ,
0 commit comments