@@ -7,7 +7,11 @@ var await=require("asyncawait/await");
77var moment = require ( "moment" ) ;
88var fs = require ( "fs" ) ;
99var temp = require ( "../model/tempModel" ) ;
10+ var poll = require ( "../model/pollModel" ) ;
11+ var test = require ( "../model/testModel" ) ;
12+ var user = require ( "../model/userModel" ) ;
1013var con = require ( "../../config.json" ) ;
14+ var util = require ( "../util/util" ) ;
1115var blue = require ( "bluebird" ) ;
1216var path = require ( 'path' ) ;
1317var rule = new schedule . RecurrenceRule ( ) ;
@@ -38,3 +42,122 @@ var j = schedule.scheduleJob(rule,async (function(){
3842
3943
4044} ) ) ;
45+
46+ var j1 = schedule . scheduleJob ( "0 * * * *" , ( async ( function ( ) {
47+ try
48+ {
49+ let date = moment ( ) ;
50+ let weekDay = date . weekday ( ) ;
51+ let hour = date . hour ( ) ;
52+ let arr = await ( poll . findAsync ( {
53+ date :weekDay ,
54+ time :hour
55+ } , null , {
56+ populate :{
57+ path :"project"
58+ }
59+ } ) ) ;
60+ arr = await ( poll . populateAsync ( arr , {
61+ path :"version"
62+ } ) ) ;
63+ arr = await ( poll . populateAsync ( arr , {
64+ path :"test" ,
65+ } ) ) ;
66+ for ( let obj of arr )
67+ {
68+ let root = {
69+ output :"" ,
70+ count :obj . test . length ,
71+ success :0 ,
72+ fail :0 ,
73+ unknown :0
74+ } ;
75+ for ( let obj1 of obj . test )
76+ {
77+ obj1 = await ( test . populateAsync ( obj1 , {
78+ path :"module"
79+ } ) )
80+ obj1 = await ( test . populateAsync ( obj1 , {
81+ path :"group"
82+ } ) )
83+ let global = {
84+ baseUrl :obj . baseUrl ,
85+ before :obj . project . before ,
86+ after :obj . project . after
87+ }
88+ if ( typeof ( obj . version ) == "object" )
89+ {
90+ global . before = obj . version . before ;
91+ global . after = obj . version . after ;
92+ }
93+ try
94+ {
95+ let ret = await ( util . runTestCode ( obj1 . code , obj1 , { } , global , root ) )
96+ if ( ret === undefined )
97+ {
98+ root . unknown ++ ;
99+ }
100+ else if ( Boolean ( ret ) == true )
101+ {
102+ root . success ++ ;
103+ }
104+ else
105+ {
106+ root . fail ++ ;
107+ }
108+ }
109+ catch ( err )
110+ {
111+ root . output += err + "<br>"
112+ }
113+ }
114+ var arrPollUser = obj . users . map ( function ( obj ) {
115+ return obj . toString ( ) ;
116+ } ) ;
117+ var arrProjectUser = obj . project . users . map ( function ( obj ) {
118+ return obj . user . toString ( ) ;
119+ } )
120+ arrProjectUser . unshift ( obj . project . owner . toString ( ) ) ;
121+ let arr = [ ] ;
122+ for ( let u of arrPollUser )
123+ {
124+ if ( arrProjectUser . indexOf ( u ) > - 1 )
125+ {
126+ let obj = await ( user . findOneAsync ( {
127+ _id :u
128+ } ) ) ;
129+ if ( obj && obj . email )
130+ {
131+ arr . push ( obj . email ) ;
132+ }
133+ }
134+ }
135+ if ( arr . length > 0 )
136+ {
137+ let subject = "[SBDoc]" + moment ( ) . format ( "YYYY-MM-DD HH:mm:ss" ) + " 项目" + obj . project . name + "轮询结果" ;
138+ let content = `<h3>测试:${ root . count } 成功:${ root . success } 失败:${ root . fail } 未判定:${ root . unknown } </h3>` + root . output ;
139+ util . sendMail ( obj . sendInfo . smtp , obj . sendInfo . port , obj . sendInfo . user , obj . sendInfo . password , arr , subject , content ) ;
140+ }
141+ }
142+ }
143+ catch ( err )
144+ {
145+ console . log ( err ) ;
146+ }
147+ } ) ) ) ;
148+
149+
150+
151+
152+
153+
154+
155+
156+
157+
158+
159+
160+
161+
162+
163+
0 commit comments