rake-dotnet 0.1.15 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. data/History.txt +22 -0
  2. data/Manifest.txt +39 -1
  3. data/Rakefile.rb +44 -14
  4. data/coverage/index.html +576 -0
  5. data/coverage/lib-assemblyinfo_rb.html +716 -0
  6. data/coverage/lib-bcpcmd_rb.html +704 -0
  7. data/coverage/lib-cli_rb.html +646 -0
  8. data/coverage/lib-fxcop_rb.html +723 -0
  9. data/coverage/lib-harvester_rb.html +741 -0
  10. data/coverage/lib-iisappcmd_rb.html +657 -0
  11. data/coverage/lib-msbuild_rb.html +713 -0
  12. data/coverage/lib-ncover_rb.html +773 -0
  13. data/coverage/lib-package_rb.html +691 -0
  14. data/coverage/lib-sevenzip_rb.html +665 -0
  15. data/coverage/lib-sqlcmd_rb.html +680 -0
  16. data/coverage/lib-svn_rb.html +671 -0
  17. data/coverage/lib-version_rb.html +651 -0
  18. data/coverage/lib-xunit_rb.html +727 -0
  19. data/doc/examples.html +482 -0
  20. data/lib/rake_dotnet.rb +826 -616
  21. data/lib/rake_dotnet/default_rakefile.rb +16 -0
  22. data/spec/assemblyinfotask_spec.rb +8 -0
  23. data/spec/bcpcmd_spec.rb +81 -0
  24. data/spec/cli_spec.rb +48 -0
  25. data/spec/constants_spec.rb +6 -0
  26. data/spec/fxcopcmd_spec.rb +8 -0
  27. data/spec/fxcoptask_spec.rb +7 -0
  28. data/spec/harvester_spec.rb +6 -0
  29. data/spec/harvestoutputtask_spec.rb +6 -0
  30. data/spec/harvestwebapplicationtask_spec.rb +6 -0
  31. data/spec/iisappcmd_spec.rb +15 -0
  32. data/spec/msbuildcmd_spec.rb +7 -0
  33. data/spec/msbuildtask_spec.rb +7 -0
  34. data/spec/ncoverconsolecmd_spec.rb +12 -0
  35. data/spec/ncoverreportingcmd_spec.rb +14 -0
  36. data/spec/ncovertask_spec.rb +24 -0
  37. data/spec/rdnpackagetask_spec.rb +6 -0
  38. data/spec/sevenzipcmd_spec.rb +7 -0
  39. data/spec/sqlcmd_spec.rb +52 -0
  40. data/spec/svncmd_spec.rb +45 -0
  41. data/spec/versioner_spec.rb +6 -0
  42. data/spec/xunitcmd_spec.rb +10 -0
  43. data/spec/xunittask_spec.rb +7 -0
  44. metadata +77 -9
  45. data/test/test_rake_dotnet.rb +0 -16
@@ -0,0 +1,773 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'><head><title>lib/ncover.rb - C0 code coverage information</title>
3
+ <style type='text/css'>body { background-color: rgb(240, 240, 245); }</style>
4
+ <style type='text/css'>span.cross-ref-title {
5
+ font-size: 140%;
6
+ }
7
+ span.cross-ref a {
8
+ text-decoration: none;
9
+ }
10
+ span.cross-ref {
11
+ background-color:#f3f7fa;
12
+ border: 1px dashed #333;
13
+ margin: 1em;
14
+ padding: 0.5em;
15
+ overflow: hidden;
16
+ }
17
+ a.crossref-toggle {
18
+ text-decoration: none;
19
+ }
20
+ span.marked0 {
21
+ background-color: rgb(185, 210, 200);
22
+ display: block;
23
+ }
24
+ span.marked1 {
25
+ background-color: rgb(190, 215, 205);
26
+ display: block;
27
+ }
28
+ span.inferred0 {
29
+ background-color: rgb(175, 200, 200);
30
+ display: block;
31
+ }
32
+ span.inferred1 {
33
+ background-color: rgb(180, 205, 205);
34
+ display: block;
35
+ }
36
+ span.uncovered0 {
37
+ background-color: rgb(225, 110, 110);
38
+ display: block;
39
+ }
40
+ span.uncovered1 {
41
+ background-color: rgb(235, 120, 120);
42
+ display: block;
43
+ }
44
+ span.overview {
45
+ border-bottom: 8px solid black;
46
+ }
47
+ div.overview {
48
+ border-bottom: 8px solid black;
49
+ }
50
+ body {
51
+ font-family: verdana, arial, helvetica;
52
+ }
53
+ div.footer {
54
+ font-size: 68%;
55
+ margin-top: 1.5em;
56
+ }
57
+ h1, h2, h3, h4, h5, h6 {
58
+ margin-bottom: 0.5em;
59
+ }
60
+ h5 {
61
+ margin-top: 0.5em;
62
+ }
63
+ .hidden {
64
+ display: none;
65
+ }
66
+ div.separator {
67
+ height: 10px;
68
+ }
69
+ /* Commented out for better readability, esp. on IE */
70
+ /*
71
+ table tr td, table tr th {
72
+ font-size: 68%;
73
+ }
74
+ td.value table tr td {
75
+ font-size: 11px;
76
+ }
77
+ */
78
+ table.percent_graph {
79
+ height: 12px;
80
+ border: #808080 1px solid;
81
+ empty-cells: show;
82
+ }
83
+ table.percent_graph td.covered {
84
+ height: 10px;
85
+ background: #00f000;
86
+ }
87
+ table.percent_graph td.uncovered {
88
+ height: 10px;
89
+ background: #e00000;
90
+ }
91
+ table.percent_graph td.NA {
92
+ height: 10px;
93
+ background: #eaeaea;
94
+ }
95
+ table.report {
96
+ border-collapse: collapse;
97
+ width: 100%;
98
+ }
99
+ table.report td.heading {
100
+ background: #dcecff;
101
+ border: #d0d0d0 1px solid;
102
+ font-weight: bold;
103
+ text-align: center;
104
+ }
105
+ table.report td.heading:hover {
106
+ background: #c0ffc0;
107
+ }
108
+ table.report td.text {
109
+ border: #d0d0d0 1px solid;
110
+ }
111
+ table.report td.value,
112
+ table.report td.lines_total,
113
+ table.report td.lines_code {
114
+ text-align: right;
115
+ border: #d0d0d0 1px solid;
116
+ }
117
+ table.report tr.light {
118
+ background-color: rgb(240, 240, 245);
119
+ }
120
+ table.report tr.dark {
121
+ background-color: rgb(230, 230, 235);
122
+ }
123
+ </style>
124
+ <script type='text/javascript'>
125
+ // <![CDATA[
126
+ function toggleCode( id ) {
127
+ if ( document.getElementById )
128
+ elem = document.getElementById( id );
129
+ else if ( document.all )
130
+ elem = eval( "document.all." + id );
131
+ else
132
+ return false;
133
+
134
+ elemStyle = elem.style;
135
+
136
+ if ( elemStyle.display != "block" ) {
137
+ elemStyle.display = "block"
138
+ } else {
139
+ elemStyle.display = "none"
140
+ }
141
+
142
+ return true;
143
+ }
144
+
145
+ // Make cross-references hidden by default
146
+ document.writeln( "<style type=\"text/css\">span.cross-ref { display: none }</style>" )
147
+ // ]]>
148
+ </script>
149
+ <style type='text/css'>span.run0 {
150
+ background-color: rgb(178, 204, 255);
151
+ display: block;
152
+ }
153
+ span.run1 {
154
+ background-color: rgb(178, 206, 255);
155
+ display: block;
156
+ }
157
+ span.run2 {
158
+ background-color: rgb(178, 209, 255);
159
+ display: block;
160
+ }
161
+ span.run3 {
162
+ background-color: rgb(178, 211, 255);
163
+ display: block;
164
+ }
165
+ span.run4 {
166
+ background-color: rgb(178, 214, 255);
167
+ display: block;
168
+ }
169
+ span.run5 {
170
+ background-color: rgb(178, 218, 255);
171
+ display: block;
172
+ }
173
+ span.run6 {
174
+ background-color: rgb(178, 220, 255);
175
+ display: block;
176
+ }
177
+ span.run7 {
178
+ background-color: rgb(178, 223, 255);
179
+ display: block;
180
+ }
181
+ span.run8 {
182
+ background-color: rgb(178, 225, 255);
183
+ display: block;
184
+ }
185
+ span.run9 {
186
+ background-color: rgb(178, 228, 255);
187
+ display: block;
188
+ }
189
+ span.run10 {
190
+ background-color: rgb(178, 232, 255);
191
+ display: block;
192
+ }
193
+ span.run11 {
194
+ background-color: rgb(178, 234, 255);
195
+ display: block;
196
+ }
197
+ span.run12 {
198
+ background-color: rgb(178, 237, 255);
199
+ display: block;
200
+ }
201
+ span.run13 {
202
+ background-color: rgb(178, 239, 255);
203
+ display: block;
204
+ }
205
+ span.run14 {
206
+ background-color: rgb(178, 242, 255);
207
+ display: block;
208
+ }
209
+ span.run15 {
210
+ background-color: rgb(178, 246, 255);
211
+ display: block;
212
+ }
213
+ span.run16 {
214
+ background-color: rgb(178, 248, 255);
215
+ display: block;
216
+ }
217
+ span.run17 {
218
+ background-color: rgb(178, 251, 255);
219
+ display: block;
220
+ }
221
+ span.run18 {
222
+ background-color: rgb(178, 253, 255);
223
+ display: block;
224
+ }
225
+ span.run19 {
226
+ background-color: rgb(178, 255, 253);
227
+ display: block;
228
+ }
229
+ span.run20 {
230
+ background-color: rgb(178, 255, 249);
231
+ display: block;
232
+ }
233
+ span.run21 {
234
+ background-color: rgb(178, 255, 247);
235
+ display: block;
236
+ }
237
+ span.run22 {
238
+ background-color: rgb(178, 255, 244);
239
+ display: block;
240
+ }
241
+ span.run23 {
242
+ background-color: rgb(178, 255, 242);
243
+ display: block;
244
+ }
245
+ span.run24 {
246
+ background-color: rgb(178, 255, 239);
247
+ display: block;
248
+ }
249
+ span.run25 {
250
+ background-color: rgb(178, 255, 235);
251
+ display: block;
252
+ }
253
+ span.run26 {
254
+ background-color: rgb(178, 255, 233);
255
+ display: block;
256
+ }
257
+ span.run27 {
258
+ background-color: rgb(178, 255, 230);
259
+ display: block;
260
+ }
261
+ span.run28 {
262
+ background-color: rgb(178, 255, 228);
263
+ display: block;
264
+ }
265
+ span.run29 {
266
+ background-color: rgb(178, 255, 225);
267
+ display: block;
268
+ }
269
+ span.run30 {
270
+ background-color: rgb(178, 255, 221);
271
+ display: block;
272
+ }
273
+ span.run31 {
274
+ background-color: rgb(178, 255, 219);
275
+ display: block;
276
+ }
277
+ span.run32 {
278
+ background-color: rgb(178, 255, 216);
279
+ display: block;
280
+ }
281
+ span.run33 {
282
+ background-color: rgb(178, 255, 214);
283
+ display: block;
284
+ }
285
+ span.run34 {
286
+ background-color: rgb(178, 255, 211);
287
+ display: block;
288
+ }
289
+ span.run35 {
290
+ background-color: rgb(178, 255, 207);
291
+ display: block;
292
+ }
293
+ span.run36 {
294
+ background-color: rgb(178, 255, 205);
295
+ display: block;
296
+ }
297
+ span.run37 {
298
+ background-color: rgb(178, 255, 202);
299
+ display: block;
300
+ }
301
+ span.run38 {
302
+ background-color: rgb(178, 255, 200);
303
+ display: block;
304
+ }
305
+ span.run39 {
306
+ background-color: rgb(178, 255, 197);
307
+ display: block;
308
+ }
309
+ span.run40 {
310
+ background-color: rgb(178, 255, 193);
311
+ display: block;
312
+ }
313
+ span.run41 {
314
+ background-color: rgb(178, 255, 191);
315
+ display: block;
316
+ }
317
+ span.run42 {
318
+ background-color: rgb(178, 255, 188);
319
+ display: block;
320
+ }
321
+ span.run43 {
322
+ background-color: rgb(178, 255, 186);
323
+ display: block;
324
+ }
325
+ span.run44 {
326
+ background-color: rgb(178, 255, 183);
327
+ display: block;
328
+ }
329
+ span.run45 {
330
+ background-color: rgb(178, 255, 179);
331
+ display: block;
332
+ }
333
+ span.run46 {
334
+ background-color: rgb(179, 255, 178);
335
+ display: block;
336
+ }
337
+ span.run47 {
338
+ background-color: rgb(182, 255, 178);
339
+ display: block;
340
+ }
341
+ span.run48 {
342
+ background-color: rgb(184, 255, 178);
343
+ display: block;
344
+ }
345
+ span.run49 {
346
+ background-color: rgb(187, 255, 178);
347
+ display: block;
348
+ }
349
+ span.run50 {
350
+ background-color: rgb(191, 255, 178);
351
+ display: block;
352
+ }
353
+ span.run51 {
354
+ background-color: rgb(193, 255, 178);
355
+ display: block;
356
+ }
357
+ span.run52 {
358
+ background-color: rgb(196, 255, 178);
359
+ display: block;
360
+ }
361
+ span.run53 {
362
+ background-color: rgb(198, 255, 178);
363
+ display: block;
364
+ }
365
+ span.run54 {
366
+ background-color: rgb(201, 255, 178);
367
+ display: block;
368
+ }
369
+ span.run55 {
370
+ background-color: rgb(205, 255, 178);
371
+ display: block;
372
+ }
373
+ span.run56 {
374
+ background-color: rgb(207, 255, 178);
375
+ display: block;
376
+ }
377
+ span.run57 {
378
+ background-color: rgb(210, 255, 178);
379
+ display: block;
380
+ }
381
+ span.run58 {
382
+ background-color: rgb(212, 255, 178);
383
+ display: block;
384
+ }
385
+ span.run59 {
386
+ background-color: rgb(215, 255, 178);
387
+ display: block;
388
+ }
389
+ span.run60 {
390
+ background-color: rgb(219, 255, 178);
391
+ display: block;
392
+ }
393
+ span.run61 {
394
+ background-color: rgb(221, 255, 178);
395
+ display: block;
396
+ }
397
+ span.run62 {
398
+ background-color: rgb(224, 255, 178);
399
+ display: block;
400
+ }
401
+ span.run63 {
402
+ background-color: rgb(226, 255, 178);
403
+ display: block;
404
+ }
405
+ span.run64 {
406
+ background-color: rgb(229, 255, 178);
407
+ display: block;
408
+ }
409
+ span.run65 {
410
+ background-color: rgb(233, 255, 178);
411
+ display: block;
412
+ }
413
+ span.run66 {
414
+ background-color: rgb(235, 255, 178);
415
+ display: block;
416
+ }
417
+ span.run67 {
418
+ background-color: rgb(238, 255, 178);
419
+ display: block;
420
+ }
421
+ span.run68 {
422
+ background-color: rgb(240, 255, 178);
423
+ display: block;
424
+ }
425
+ span.run69 {
426
+ background-color: rgb(243, 255, 178);
427
+ display: block;
428
+ }
429
+ span.run70 {
430
+ background-color: rgb(247, 255, 178);
431
+ display: block;
432
+ }
433
+ span.run71 {
434
+ background-color: rgb(249, 255, 178);
435
+ display: block;
436
+ }
437
+ span.run72 {
438
+ background-color: rgb(252, 255, 178);
439
+ display: block;
440
+ }
441
+ span.run73 {
442
+ background-color: rgb(255, 255, 178);
443
+ display: block;
444
+ }
445
+ span.run74 {
446
+ background-color: rgb(255, 252, 178);
447
+ display: block;
448
+ }
449
+ span.run75 {
450
+ background-color: rgb(255, 248, 178);
451
+ display: block;
452
+ }
453
+ span.run76 {
454
+ background-color: rgb(255, 246, 178);
455
+ display: block;
456
+ }
457
+ span.run77 {
458
+ background-color: rgb(255, 243, 178);
459
+ display: block;
460
+ }
461
+ span.run78 {
462
+ background-color: rgb(255, 240, 178);
463
+ display: block;
464
+ }
465
+ span.run79 {
466
+ background-color: rgb(255, 238, 178);
467
+ display: block;
468
+ }
469
+ span.run80 {
470
+ background-color: rgb(255, 234, 178);
471
+ display: block;
472
+ }
473
+ span.run81 {
474
+ background-color: rgb(255, 232, 178);
475
+ display: block;
476
+ }
477
+ span.run82 {
478
+ background-color: rgb(255, 229, 178);
479
+ display: block;
480
+ }
481
+ span.run83 {
482
+ background-color: rgb(255, 226, 178);
483
+ display: block;
484
+ }
485
+ span.run84 {
486
+ background-color: rgb(255, 224, 178);
487
+ display: block;
488
+ }
489
+ span.run85 {
490
+ background-color: rgb(255, 220, 178);
491
+ display: block;
492
+ }
493
+ span.run86 {
494
+ background-color: rgb(255, 218, 178);
495
+ display: block;
496
+ }
497
+ span.run87 {
498
+ background-color: rgb(255, 215, 178);
499
+ display: block;
500
+ }
501
+ span.run88 {
502
+ background-color: rgb(255, 212, 178);
503
+ display: block;
504
+ }
505
+ span.run89 {
506
+ background-color: rgb(255, 210, 178);
507
+ display: block;
508
+ }
509
+ span.run90 {
510
+ background-color: rgb(255, 206, 178);
511
+ display: block;
512
+ }
513
+ span.run91 {
514
+ background-color: rgb(255, 204, 178);
515
+ display: block;
516
+ }
517
+ span.run92 {
518
+ background-color: rgb(255, 201, 178);
519
+ display: block;
520
+ }
521
+ span.run93 {
522
+ background-color: rgb(255, 198, 178);
523
+ display: block;
524
+ }
525
+ span.run94 {
526
+ background-color: rgb(255, 196, 178);
527
+ display: block;
528
+ }
529
+ span.run95 {
530
+ background-color: rgb(255, 192, 178);
531
+ display: block;
532
+ }
533
+ span.run96 {
534
+ background-color: rgb(255, 189, 178);
535
+ display: block;
536
+ }
537
+ span.run97 {
538
+ background-color: rgb(255, 187, 178);
539
+ display: block;
540
+ }
541
+ span.run98 {
542
+ background-color: rgb(255, 184, 178);
543
+ display: block;
544
+ }
545
+ span.run99 {
546
+ background-color: rgb(255, 182, 178);
547
+ display: block;
548
+ }
549
+ span.run100 {
550
+ background-color: rgb(255, 178, 178);
551
+ display: block;
552
+ }
553
+ </style>
554
+ </head>
555
+ <body><h3>C0 code coverage information</h3>
556
+ <p>Generated on Mon Nov 09 13:47:38 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
+ </p>
558
+ <hr/>
559
+ <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
560
+ </span><span class='marked1'>and this: this line is also marked as covered.
561
+ </span><span class='inferred0'>Lines considered as run by rcov, but not reported by Ruby, look like this,
562
+ </span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).
563
+ </span><span class='uncovered0'>Finally, here&apos;s a line marked as not executed.
564
+ </span></pre>
565
+ <table class='report'><thead><tr><td class='heading'>Name</td>
566
+ <td class='heading'>Total lines</td>
567
+ <td class='heading'>Lines of code</td>
568
+ <td class='heading'>Total coverage</td>
569
+ <td class='heading'>Code coverage</td>
570
+ </tr>
571
+ </thead>
572
+ <tbody><tr class='light'><td><a href='lib-ncover_rb.html'>lib/ncover.rb</a>
573
+ </td>
574
+ <td class='lines_total'><tt>163</tt>
575
+ </td>
576
+ <td class='lines_code'><tt>131</tt>
577
+ </td>
578
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>24.5%</tt>
579
+ &nbsp;</td>
580
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='25'/>
581
+ <td class='uncovered' width='75'/>
582
+ </tr>
583
+ </table>
584
+ </td>
585
+ </tr>
586
+ </table>
587
+ </td>
588
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>16.8%</tt>
589
+ &nbsp;</td>
590
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='17'/>
591
+ <td class='uncovered' width='83'/>
592
+ </tr>
593
+ </table>
594
+ </td>
595
+ </tr>
596
+ </table>
597
+ </td>
598
+ </tr>
599
+ </tbody>
600
+ </table>
601
+ <pre><span class="marked1"><a name="line1"></a> 1 class NCoverTask &lt; Rake::TaskLib
602
+ </span><span class="marked0"><a name="line2"></a> 2 attr_accessor :profile_options, :reporting_options
603
+ </span><span class="inferred1"><a name="line3"></a> 3
604
+ </span><span class="marked0"><a name="line4"></a> 4 def initialize(params={})
605
+ </span><span class="uncovered1"><a name="line5"></a> 5 @product_name = params[:product_name] || PRODUCT_NAME
606
+ </span><span class="uncovered0"><a name="line6"></a> 6 @bin_dir = params[:bin_dir] || File.join(OUT_DIR, 'bin')
607
+ </span><span class="uncovered1"><a name="line7"></a> 7 @report_dir = params[:report_dir] || File.join(OUT_DIR, 'reports', 'ncover')
608
+ </span><span class="uncovered0"><a name="line8"></a> 8 @deps = params[:deps] || []
609
+ </span><span class="uncovered1"><a name="line9"></a> 9 tool_defaults = {:arch =&gt; ENV['PROCESSOR_ARCHITECTURE']}
610
+ </span><span class="uncovered0"><a name="line10"></a> 10 @profile_options = tool_defaults.merge(params[:profile_options] || {})
611
+ </span><span class="uncovered1"><a name="line11"></a> 11 @reporting_options = tool_defaults.merge(params[:reporting_options] || {})
612
+ </span><span class="uncovered0"><a name="line12"></a> 12
613
+ </span><span class="uncovered1"><a name="line13"></a> 13 yield self if block_given?
614
+ </span><span class="uncovered0"><a name="line14"></a> 14 define
615
+ </span><span class="uncovered1"><a name="line15"></a> 15 end
616
+ </span><span class="inferred0"><a name="line16"></a> 16
617
+ </span><span class="marked1"><a name="line17"></a> 17 def define
618
+ </span><span class="uncovered0"><a name="line18"></a> 18 @deps.each do |d|
619
+ </span><span class="uncovered1"><a name="line19"></a> 19 task :ncover_profile =&gt; d
620
+ </span><span class="uncovered0"><a name="line20"></a> 20 end
621
+ </span><span class="uncovered1"><a name="line21"></a> 21
622
+ </span><span class="uncovered0"><a name="line22"></a> 22 directory @report_dir
623
+ </span><span class="uncovered1"><a name="line23"></a> 23
624
+ </span><span class="uncovered0"><a name="line24"></a> 24 reports_dir_regex = RakeDotNet::regexify(@report_dir)
625
+ </span><span class="uncovered1"><a name="line25"></a> 25 rule(/#{reports_dir_regex}\/.*\.coverage\.xml/) do |r|
626
+ </span><span class="uncovered0"><a name="line26"></a> 26 dll_to_execute = r.name.sub(/#{@report_dir}\/(.*)\.coverage\.xml/, &quot;#{@bin_dir}/\\1.dll&quot;)
627
+ </span><span class="uncovered1"><a name="line27"></a> 27 nc = NCoverConsoleCmd.new(@report_dir, dll_to_execute, @profile_options)
628
+ </span><span class="uncovered0"><a name="line28"></a> 28 nc.run
629
+ </span><span class="uncovered1"><a name="line29"></a> 29 end
630
+ </span><span class="uncovered0"><a name="line30"></a> 30
631
+ </span><span class="uncovered1"><a name="line31"></a> 31 desc &quot;Generate ncover coverage XML, one file per test-suite that exercises your product&quot;
632
+ </span><span class="uncovered0"><a name="line32"></a> 32 task :ncover_profile, [:dlls_to_run] =&gt; [@report_dir] do |t, args|
633
+ </span><span class="uncovered1"><a name="line33"></a> 33 dlls_to_run_list = FileList.new
634
+ </span><span class="uncovered0"><a name="line34"></a> 34 dlls_to_run_list.include(&quot;#{@bin_dir}/**/*#{@product_name}*Tests*.dll&quot;)
635
+ </span><span class="uncovered1"><a name="line35"></a> 35 dlls_to_run_list.include(&quot;#{@bin_dir}/**/*#{@product_name}*Tests*.exe&quot;)
636
+ </span><span class="uncovered0"><a name="line36"></a> 36 args.with_defaults(:dlls_to_run =&gt; dlls_to_run_list)
637
+ </span><span class="uncovered1"><a name="line37"></a> 37 args.dlls_to_run.each do |d|
638
+ </span><span class="uncovered0"><a name="line38"></a> 38 dll_to_run = Pathname.new(d)
639
+ </span><span class="uncovered1"><a name="line39"></a> 39 cf_name = dll_to_run.basename.sub(dll_to_run.extname, '.coverage.xml')
640
+ </span><span class="uncovered0"><a name="line40"></a> 40 coverage_file = File.join(@report_dir, cf_name)
641
+ </span><span class="uncovered1"><a name="line41"></a> 41 Rake::FileTask[coverage_file].invoke
642
+ </span><span class="uncovered0"><a name="line42"></a> 42 end
643
+ </span><span class="uncovered1"><a name="line43"></a> 43
644
+ </span><span class="uncovered0"><a name="line44"></a> 44 end
645
+ </span><span class="uncovered1"><a name="line45"></a> 45
646
+ </span><span class="uncovered0"><a name="line46"></a> 46 desc &quot;Generate ncover coverage report(s), on all coverage files, merged together&quot;
647
+ </span><span class="uncovered1"><a name="line47"></a> 47 task :ncover_reports =&gt; [:ncover_profile] do
648
+ </span><span class="uncovered0"><a name="line48"></a> 48 # ncover lets us use *.coverage.xml to merge together files
649
+ </span><span class="uncovered1"><a name="line49"></a> 49 include = [File.join(@report_dir, '*.coverage.xml')]
650
+ </span><span class="uncovered0"><a name="line50"></a> 50 @reporting_options[:name] = 'merged'
651
+ </span><span class="uncovered1"><a name="line51"></a> 51 ncr = NCoverReportingCmd.new(@report_dir, include, @reporting_options)
652
+ </span><span class="uncovered0"><a name="line52"></a> 52 ncr.run
653
+ </span><span class="uncovered1"><a name="line53"></a> 53 end
654
+ </span><span class="uncovered0"><a name="line54"></a> 54
655
+ </span><span class="uncovered1"><a name="line55"></a> 55 task :clobber_ncover do
656
+ </span><span class="uncovered0"><a name="line56"></a> 56 rm_rf @report_dir
657
+ </span><span class="uncovered1"><a name="line57"></a> 57 end
658
+ </span><span class="uncovered0"><a name="line58"></a> 58
659
+ </span><span class="uncovered1"><a name="line59"></a> 59 self
660
+ </span><span class="uncovered0"><a name="line60"></a> 60 end
661
+ </span><span class="uncovered1"><a name="line61"></a> 61 end
662
+ </span><span class="inferred0"><a name="line62"></a> 62
663
+ </span><span class="marked1"><a name="line63"></a> 63 class NCoverConsoleCmd
664
+ </span><span class="marked0"><a name="line64"></a> 64 def initialize(report_dir, dll_to_execute, params)
665
+ </span><span class="uncovered1"><a name="line65"></a> 65 params ||= {}
666
+ </span><span class="uncovered0"><a name="line66"></a> 66 arch = params[:arch] || ENV['PROCESSOR_ARCHITECTURE']
667
+ </span><span class="uncovered1"><a name="line67"></a> 67 @exe = params[:ncover_exe] || File.join(TOOLS_DIR, 'ncover', arch, 'ncover.console.exe')
668
+ </span><span class="uncovered0"><a name="line68"></a> 68 @dll_to_execute = dll_to_execute
669
+ </span><span class="uncovered1"><a name="line69"></a> 69 ofname = File.split(dll_to_execute)[1].sub(/(\.dll)/, '') + '.coverage.xml'
670
+ </span><span class="uncovered0"><a name="line70"></a> 70 @output_file = File.join(report_dir, ofname)
671
+ </span><span class="uncovered1"><a name="line71"></a> 71 @exclude_assemblies_regex = params[:exclude_assemblies_regex] || ['.*Tests.*']
672
+ </span><span class="uncovered0"><a name="line72"></a> 72 @exclude_assemblies_regex.push('ISymWrapper')
673
+ </span><span class="uncovered1"><a name="line73"></a> 73 @working_dir = params[:working_dir] || Pathname.new(@dll_to_execute).dirname
674
+ </span><span class="uncovered0"><a name="line74"></a> 74 end
675
+ </span><span class="inferred1"><a name="line75"></a> 75
676
+ </span><span class="marked0"><a name="line76"></a> 76 def cmdToRun
677
+ </span><span class="uncovered1"><a name="line77"></a> 77 x = XUnitConsoleCmd.new(@dll_to_execute, '', nil, {})
678
+ </span><span class="uncovered0"><a name="line78"></a> 78 x.cmd
679
+ </span><span class="uncovered1"><a name="line79"></a> 79 end
680
+ </span><span class="inferred0"><a name="line80"></a> 80
681
+ </span><span class="marked1"><a name="line81"></a> 81 def bi
682
+ </span><span class="uncovered0"><a name="line82"></a> 82 &quot;//bi #{Versioner.new.get.to_s}&quot;
683
+ </span><span class="uncovered1"><a name="line83"></a> 83 end
684
+ </span><span class="inferred0"><a name="line84"></a> 84
685
+ </span><span class="marked1"><a name="line85"></a> 85 def working_dir
686
+ </span><span class="uncovered0"><a name="line86"></a> 86 &quot;//w #{@working_dir}&quot;
687
+ </span><span class="uncovered1"><a name="line87"></a> 87 end
688
+ </span><span class="inferred0"><a name="line88"></a> 88
689
+ </span><span class="marked1"><a name="line89"></a> 89 def exclude_assemblies
690
+ </span><span class="uncovered0"><a name="line90"></a> 90 if @exclude_assemblies_regex.instance_of?(Array)
691
+ </span><span class="uncovered1"><a name="line91"></a> 91 return '//eas ' + @exclude_assemblies_regex.join(';')
692
+ </span><span class="uncovered0"><a name="line92"></a> 92 end
693
+ </span><span class="uncovered1"><a name="line93"></a> 93 return '//eas ' + @exclude_assemblies_regex if @exclude_assemblies_regex.instance_of?(String)
694
+ </span><span class="uncovered0"><a name="line94"></a> 94 end
695
+ </span><span class="inferred1"><a name="line95"></a> 95
696
+ </span><span class="marked0"><a name="line96"></a> 96 def cmd
697
+ </span><span class="uncovered1"><a name="line97"></a> 97 &quot;\&quot;#{@exe}\&quot; #{cmdToRun} //x #{@output_file} #{exclude_assemblies} #{bi} #{working_dir}&quot;
698
+ </span><span class="uncovered0"><a name="line98"></a> 98 end
699
+ </span><span class="inferred1"><a name="line99"></a> 99
700
+ </span><span class="marked0"><a name="line100"></a>100 def run
701
+ </span><span class="uncovered1"><a name="line101"></a>101 puts cmd if VERBOSE
702
+ </span><span class="uncovered0"><a name="line102"></a>102 sh cmd
703
+ </span><span class="uncovered1"><a name="line103"></a>103 end
704
+ </span><span class="uncovered0"><a name="line104"></a>104 end
705
+ </span><span class="inferred1"><a name="line105"></a>105
706
+ </span><span class="marked0"><a name="line106"></a>106 class NCoverReportingCmd
707
+ </span><span class="marked1"><a name="line107"></a>107 def initialize(report_dir, coverage_files, params)
708
+ </span><span class="uncovered0"><a name="line108"></a>108 @report_dir = report_dir
709
+ </span><span class="uncovered1"><a name="line109"></a>109 @coverage_files = coverage_files || []
710
+ </span><span class="uncovered0"><a name="line110"></a>110
711
+ </span><span class="uncovered1"><a name="line111"></a>111 params ||= {}
712
+ </span><span class="uncovered0"><a name="line112"></a>112 arch = params[:arch] || ENV['PROCESSOR_ARCHITECTURE']
713
+ </span><span class="uncovered1"><a name="line113"></a>113 @exe = params[:ncover_reporting_exe] || File.join(TOOLS_DIR, 'ncover', arch, 'ncover.reporting.exe')
714
+ </span><span class="uncovered0"><a name="line114"></a>114
715
+ </span><span class="uncovered1"><a name="line115"></a>115 # required
716
+ </span><span class="uncovered0"><a name="line116"></a>116 @reports = params[:reports] || ['Summary', 'UncoveredCodeSections', 'FullCoverageReport']
717
+ </span><span class="uncovered1"><a name="line117"></a>117 @output_path = File.join(@report_dir)
718
+ </span><span class="uncovered0"><a name="line118"></a>118
719
+ </span><span class="uncovered1"><a name="line119"></a>119 # optional
720
+ </span><span class="uncovered0"><a name="line120"></a>120 @sort_order = params[:sort] || 'CoveragePercentageAscending'
721
+ </span><span class="uncovered1"><a name="line121"></a>121 @project_name = params[:project_name] || PRODUCT_NAME
722
+ </span><span class="uncovered0"><a name="line122"></a>122 end
723
+ </span><span class="inferred1"><a name="line123"></a>123
724
+ </span><span class="marked0"><a name="line124"></a>124 def coverage_files
725
+ </span><span class="uncovered1"><a name="line125"></a>125 list = ''
726
+ </span><span class="uncovered0"><a name="line126"></a>126 @coverage_files.each do |cf|
727
+ </span><span class="uncovered1"><a name="line127"></a>127 list += &quot;\&quot;#{cf}\&quot; &quot;
728
+ </span><span class="uncovered0"><a name="line128"></a>128 end
729
+ </span><span class="uncovered1"><a name="line129"></a>129 list
730
+ </span><span class="uncovered0"><a name="line130"></a>130 end
731
+ </span><span class="inferred1"><a name="line131"></a>131
732
+ </span><span class="marked0"><a name="line132"></a>132 def build_id
733
+ </span><span class="uncovered1"><a name="line133"></a>133 &quot;//bi #{Versioner.new.get.to_s}&quot;
734
+ </span><span class="uncovered0"><a name="line134"></a>134 end
735
+ </span><span class="inferred1"><a name="line135"></a>135
736
+ </span><span class="marked0"><a name="line136"></a>136 def output_reports
737
+ </span><span class="uncovered1"><a name="line137"></a>137 cmd = ''
738
+ </span><span class="uncovered0"><a name="line138"></a>138 @reports.each do |r|
739
+ </span><span class="uncovered1"><a name="line139"></a>139 cmd += &quot;//or #{r} &quot;
740
+ </span><span class="uncovered0"><a name="line140"></a>140 end
741
+ </span><span class="uncovered1"><a name="line141"></a>141 return cmd
742
+ </span><span class="uncovered0"><a name="line142"></a>142 end
743
+ </span><span class="inferred1"><a name="line143"></a>143
744
+ </span><span class="marked0"><a name="line144"></a>144 def output_path
745
+ </span><span class="uncovered1"><a name="line145"></a>145 &quot;//op \&quot;#{@output_path}\&quot;&quot;
746
+ </span><span class="uncovered0"><a name="line146"></a>146 end
747
+ </span><span class="inferred1"><a name="line147"></a>147
748
+ </span><span class="marked0"><a name="line148"></a>148 def sort_order
749
+ </span><span class="uncovered1"><a name="line149"></a>149 &quot;//so #{@sort_order}&quot;
750
+ </span><span class="uncovered0"><a name="line150"></a>150 end
751
+ </span><span class="inferred1"><a name="line151"></a>151
752
+ </span><span class="marked0"><a name="line152"></a>152 def project_name
753
+ </span><span class="uncovered1"><a name="line153"></a>153 &quot;//p #{@project_name}&quot; unless @project_name.nil?
754
+ </span><span class="uncovered0"><a name="line154"></a>154 end
755
+ </span><span class="inferred1"><a name="line155"></a>155
756
+ </span><span class="marked0"><a name="line156"></a>156 def cmd
757
+ </span><span class="uncovered1"><a name="line157"></a>157 &quot;\&quot;#{@exe}\&quot; #{coverage_files} #{build_id} #{output_reports} #{output_path} #{sort_order} #{project_name}&quot;
758
+ </span><span class="uncovered0"><a name="line158"></a>158 end
759
+ </span><span class="inferred1"><a name="line159"></a>159
760
+ </span><span class="marked0"><a name="line160"></a>160 def run
761
+ </span><span class="uncovered1"><a name="line161"></a>161 sh cmd
762
+ </span><span class="uncovered0"><a name="line162"></a>162 end
763
+ </span><span class="uncovered1"><a name="line163"></a>163 end
764
+ </span></pre><hr/>
765
+ <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
766
+ version 0.8.1.2.</p>
767
+ <p><a href='http://validator.w3.org/check/referer'><img src='http://www.w3.org/Icons/valid-xhtml10' height='31' alt='Valid XHTML 1.0!' width='88'/>
768
+ </a>
769
+ <a href='http://jigsaw.w3.org/css-validator/check/referer'><img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px'/>
770
+ </a>
771
+ </p>
772
+ </body>
773
+ </html>