rake-dotnet 0.1.17 → 0.1.18

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,10 @@
1
+ === 0.1.18 / 2009-11-26
2
+
3
+ CHANGE: NCover - support regular license-holders by removing automatic use of features that require complete license
4
+ ADD: NCover - add ability to profile IIS
5
+ CHANGE: Remove install dependencies on rcov, rspec but update documentation with build-from-source
6
+ ADD: Xunit - can now run eg `rake xunit['xt-Foo.Unit.Tests']` to run xunit against Foo.Unit.Tests project, instead of needing to run `rake xunit['out/reports/Foo.Unit.Tests/']`
7
+
1
8
  === 0.1.17 / 2009-11-10
2
9
 
3
10
  FIX: Typos :-(
@@ -71,17 +71,9 @@ Example: [{github}/presentation/DemoRoot](http://github.com/petemounce/rake-dotn
71
71
  (In no particular order)
72
72
 
73
73
  * rdoc documentation to supplement blog'd about
74
- * unit-tests
75
74
  * Support other test-runners - nunit, mbunit, gallio
76
- * unit-tests!
77
- * Support code-coverage runner(s) - ncover 1.68 (?), ncover 3, partcover
78
- * unit-tests!!
79
- * Support clone-detective...?
80
- * unit-tests!!!
81
75
  * Support other source-controls to get build version number - mercurial, cvs(?), TFS. Or just read it from an environment variable that assumes we're within a CI build.
82
- * unit-tests!!!!
83
76
  * Support changing the conventions to allow users to specify their own source structure
84
- * unit-tests
85
77
  * Provide an InstallPad for the 3rdparty bits
86
78
 
87
79
  ## Requirements:
@@ -98,6 +90,10 @@ Example: [{github}/presentation/DemoRoot](http://github.com/petemounce/rake-dotn
98
90
  3. Fetch the 3rdparty dependencies listed in [{github}/presentation/DemoRoot/3rdparty/readme.txt](http://github.com/petemounce/rake-dotnet/tree/master/)
99
91
  * rake-dotnet uses tools within the paths taken from the default unzip'd location. For example, svn.exe is expected to live within #{TOOLS_DIR}/svn/bin because that's how svn zip files unzip
100
92
 
93
+ ## Build from source:
94
+ 1. `gem install rcov rspec diff-lcs` (again, prepend `sudo` if you're not on Windows)
95
+ 2. `rake
96
+
101
97
  ## License:
102
98
 
103
99
  (The MIT License)
@@ -6,7 +6,7 @@ require 'Pathname'
6
6
  require 'rake/clean'
7
7
 
8
8
  Hoe.spec 'rake-dotnet' do |p|
9
- p.version = '0.1.17'
9
+ p.version = '0.1.18'
10
10
  p.author = 'Peter Mounce'
11
11
  p.description = 'Making a .NET build-automation dev\'s life easier, one angle-bracket at a time'
12
12
  p.email = 'public@neverrunwithscissors.com'
@@ -15,9 +15,6 @@ Hoe.spec 'rake-dotnet' do |p|
15
15
  p.developer('Peter Mounce', 'public@neverrunwithscissors.com')
16
16
  p.remote_rdoc_dir = ''
17
17
  p.extra_deps << ['rake', '>= 0.8.3']
18
- p.extra_deps << ['rspec', '>= 1.2.9']
19
- p.extra_deps << ['rcov', '>= 0.8.1']
20
- p.extra_deps << ['diff-lcs', '>= 1.1.2']
21
18
  p.url = 'http://blog.neverrunwithscissors.com/tag/rake-dotnet'
22
19
  end
23
20
 
@@ -148,7 +148,7 @@ table.report tr.dark {
148
148
  </script>
149
149
  </head>
150
150
  <body><h3>C0 code coverage information</h3>
151
- <p>Generated on Tue Nov 10 16:51:31 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
151
+ <p>Generated on Thu Nov 26 13:59:06 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
152
152
  </p>
153
153
  <hr/>
154
154
  <table class='report'><thead><tr><td class='heading'>Name</td>
@@ -159,24 +159,24 @@ table.report tr.dark {
159
159
  </tr>
160
160
  </thead>
161
161
  <tbody><tr class='light'><td>TOTAL</td>
162
- <td class='lines_total'><tt>1218</tt>
162
+ <td class='lines_total'><tt>1267</tt>
163
163
  </td>
164
- <td class='lines_code'><tt>1005</tt>
164
+ <td class='lines_code'><tt>1049</tt>
165
165
  </td>
166
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>38.4%</tt>
166
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>37.1%</tt>
167
167
  &nbsp;</td>
168
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='38'/>
169
- <td class='uncovered' width='62'/>
168
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='37'/>
169
+ <td class='uncovered' width='63'/>
170
170
  </tr>
171
171
  </table>
172
172
  </td>
173
173
  </tr>
174
174
  </table>
175
175
  </td>
176
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>32.2%</tt>
176
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>31.0%</tt>
177
177
  &nbsp;</td>
178
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='32'/>
179
- <td class='uncovered' width='68'/>
178
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='31'/>
179
+ <td class='uncovered' width='69'/>
180
180
  </tr>
181
181
  </table>
182
182
  </td>
@@ -375,24 +375,24 @@ table.report tr.dark {
375
375
  </tr>
376
376
  <tr class='light'><td><a href='lib-ncover_rb.html'>lib/ncover.rb</a>
377
377
  </td>
378
- <td class='lines_total'><tt>163</tt>
378
+ <td class='lines_total'><tt>204</tt>
379
379
  </td>
380
- <td class='lines_code'><tt>131</tt>
380
+ <td class='lines_code'><tt>168</tt>
381
381
  </td>
382
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>24.5%</tt>
382
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>20.6%</tt>
383
383
  &nbsp;</td>
384
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='25'/>
385
- <td class='uncovered' width='75'/>
384
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='21'/>
385
+ <td class='uncovered' width='79'/>
386
386
  </tr>
387
387
  </table>
388
388
  </td>
389
389
  </tr>
390
390
  </table>
391
391
  </td>
392
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>16.8%</tt>
392
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>13.7%</tt>
393
393
  &nbsp;</td>
394
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='17'/>
395
- <td class='uncovered' width='83'/>
394
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='14'/>
395
+ <td class='uncovered' width='86'/>
396
396
  </tr>
397
397
  </table>
398
398
  </td>
@@ -537,24 +537,24 @@ table.report tr.dark {
537
537
  </tr>
538
538
  <tr class='light'><td><a href='lib-xunit_rb.html'>lib/xunit.rb</a>
539
539
  </td>
540
- <td class='lines_total'><tt>117</tt>
540
+ <td class='lines_total'><tt>125</tt>
541
541
  </td>
542
- <td class='lines_code'><tt>95</tt>
542
+ <td class='lines_code'><tt>102</tt>
543
543
  </td>
544
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>29.1%</tt>
544
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>27.2%</tt>
545
545
  &nbsp;</td>
546
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='29'/>
547
- <td class='uncovered' width='71'/>
546
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='27'/>
547
+ <td class='uncovered' width='73'/>
548
548
  </tr>
549
549
  </table>
550
550
  </td>
551
551
  </tr>
552
552
  </table>
553
553
  </td>
554
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>18.9%</tt>
554
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>17.6%</tt>
555
555
  &nbsp;</td>
556
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='19'/>
557
- <td class='uncovered' width='81'/>
556
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='18'/>
557
+ <td class='uncovered' width='82'/>
558
558
  </tr>
559
559
  </table>
560
560
  </td>
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Tue Nov 10 16:51:31 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Thu Nov 26 13:59:06 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Tue Nov 10 16:51:31 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Thu Nov 26 13:59:06 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Tue Nov 10 16:51:31 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Thu Nov 26 13:59:06 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Tue Nov 10 16:51:31 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Thu Nov 26 13:59:06 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Tue Nov 10 16:51:31 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Thu Nov 26 13:59:06 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Tue Nov 10 16:51:31 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Thu Nov 26 13:59:06 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Tue Nov 10 16:51:31 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Thu Nov 26 13:59:06 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Tue Nov 10 16:51:32 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Thu Nov 26 13:59:06 +0000 2009 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -571,24 +571,24 @@ span.run100 {
571
571
  </thead>
572
572
  <tbody><tr class='light'><td><a href='lib-ncover_rb.html'>lib/ncover.rb</a>
573
573
  </td>
574
- <td class='lines_total'><tt>163</tt>
574
+ <td class='lines_total'><tt>204</tt>
575
575
  </td>
576
- <td class='lines_code'><tt>131</tt>
576
+ <td class='lines_code'><tt>168</tt>
577
577
  </td>
578
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>24.5%</tt>
578
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>20.6%</tt>
579
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'/>
580
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='21'/>
581
+ <td class='uncovered' width='79'/>
582
582
  </tr>
583
583
  </table>
584
584
  </td>
585
585
  </tr>
586
586
  </table>
587
587
  </td>
588
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>16.8%</tt>
588
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>13.7%</tt>
589
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'/>
590
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='14'/>
591
+ <td class='uncovered' width='86'/>
592
592
  </tr>
593
593
  </table>
594
594
  </td>
@@ -624,143 +624,184 @@ span.run100 {
624
624
  </span><span class="uncovered0"><a name="line24"></a> 24 reports_dir_regex = RakeDotNet::regexify(@report_dir)
625
625
  </span><span class="uncovered1"><a name="line25"></a> 25 rule(/#{reports_dir_regex}\/.*\.coverage\.xml/) do |r|
626
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
627
+ </span><span class="uncovered1"><a name="line27"></a> 27 if (shouldProfileIis(dll_to_execute))
628
+ </span><span class="uncovered0"><a name="line28"></a> 28 @profile_options[:profile_iis] = true
629
+ </span><span class="uncovered1"><a name="line29"></a> 29 end
630
+ </span><span class="uncovered0"><a name="line30"></a> 30 nc = NCoverConsoleCmd.new(@report_dir, dll_to_execute, @profile_options)
631
+ </span><span class="uncovered1"><a name="line31"></a> 31 nc.run
632
+ </span><span class="uncovered0"><a name="line32"></a> 32 end
633
+ </span><span class="uncovered1"><a name="line33"></a> 33
634
+ </span><span class="uncovered0"><a name="line34"></a> 34 def shouldProfileIis(dll)
635
+ </span><span class="uncovered1"><a name="line35"></a> 35 dll = dll.downcase
636
+ </span><span class="uncovered0"><a name="line36"></a> 36 return true if dll.include? 'functional'
637
+ </span><span class="uncovered1"><a name="line37"></a> 37 return true if dll.include? 'browser'
638
+ </span><span class="uncovered0"><a name="line38"></a> 38 return true if dll.include? 'selenium'
639
+ </span><span class="uncovered1"><a name="line39"></a> 39 return true if dll.include? 'watin'
640
+ </span><span class="uncovered0"><a name="line40"></a> 40 return false
641
+ </span><span class="uncovered1"><a name="line41"></a> 41 end
642
+ </span><span class="uncovered0"><a name="line42"></a> 42
643
+ </span><span class="uncovered1"><a name="line43"></a> 43 desc &quot;Generate ncover coverage XML, one file per test-suite that exercises your product&quot;
644
+ </span><span class="uncovered0"><a name="line44"></a> 44 task :ncover_profile, [:dlls_to_run] =&gt; [@report_dir] do |t, args|
645
+ </span><span class="uncovered1"><a name="line45"></a> 45 dlls_to_run_list = FileList.new
646
+ </span><span class="uncovered0"><a name="line46"></a> 46 dlls_to_run_list.include(&quot;#{@bin_dir}/**/*#{@product_name}*Tests*.dll&quot;)
647
+ </span><span class="uncovered1"><a name="line47"></a> 47 dlls_to_run_list.include(&quot;#{@bin_dir}/**/*#{@product_name}*Tests*.exe&quot;)
648
+ </span><span class="uncovered0"><a name="line48"></a> 48 args.with_defaults(:dlls_to_run =&gt; dlls_to_run_list)
649
+ </span><span class="uncovered1"><a name="line49"></a> 49 args.dlls_to_run.each do |d|
650
+ </span><span class="uncovered0"><a name="line50"></a> 50 dll_to_run = Pathname.new(d)
651
+ </span><span class="uncovered1"><a name="line51"></a> 51 cf_name = dll_to_run.basename.sub(dll_to_run.extname, '.coverage.xml')
652
+ </span><span class="uncovered0"><a name="line52"></a> 52 coverage_file = File.join(@report_dir, cf_name)
653
+ </span><span class="uncovered1"><a name="line53"></a> 53 Rake::FileTask[coverage_file].invoke
654
+ </span><span class="uncovered0"><a name="line54"></a> 54 end
655
+ </span><span class="uncovered1"><a name="line55"></a> 55 end
656
+ </span><span class="uncovered0"><a name="line56"></a> 56
657
+ </span><span class="uncovered1"><a name="line57"></a> 57 rule(/#{reports_dir_regex}\/.*\//) do |report_set|
658
+ </span><span class="uncovered0"><a name="line58"></a> 58 set_name = report_set.name.match(/#{reports_dir_regex}\/(.*)\//)[1]
659
+ </span><span class="uncovered1"><a name="line59"></a> 59 profile_xml = File.join(@report_dir, &quot;#{set_name}.coverage.xml&quot;)
660
+ </span><span class="uncovered0"><a name="line60"></a> 60 mkdir_p report_set.name
661
+ </span><span class="uncovered1"><a name="line61"></a> 61 @reporting_options[:project_name] = set_name
662
+ </span><span class="uncovered0"><a name="line62"></a> 62 ncr = NCoverReportingCmd.new(report_set.name, profile_xml, @reporting_options)
663
+ </span><span class="uncovered1"><a name="line63"></a> 63 ncr.run
664
+ </span><span class="uncovered0"><a name="line64"></a> 64 end
665
+ </span><span class="uncovered1"><a name="line65"></a> 65
666
+ </span><span class="uncovered0"><a name="line66"></a> 66 desc &quot;Generate ncover coverage report(s), on all coverage files&quot;
667
+ </span><span class="uncovered1"><a name="line67"></a> 67 task :ncover_reports =&gt; [:ncover_profile] do
668
+ </span><span class="uncovered0"><a name="line68"></a> 68 report_sets = FileList.new(&quot;#{@report_dir}/**/*.coverage.xml&quot;)
669
+ </span><span class="uncovered1"><a name="line69"></a> 69 report_sets.each do |set|
670
+ </span><span class="uncovered0"><a name="line70"></a> 70 cov_report = set.sub('.coverage.xml', '/')
671
+ </span><span class="uncovered1"><a name="line71"></a> 71 Rake::FileTask[cov_report].invoke
672
+ </span><span class="uncovered0"><a name="line72"></a> 72 end
673
+ </span><span class="uncovered1"><a name="line73"></a> 73 end
674
+ </span><span class="uncovered0"><a name="line74"></a> 74
675
+ </span><span class="uncovered1"><a name="line75"></a> 75 task :clobber_ncover do
676
+ </span><span class="uncovered0"><a name="line76"></a> 76 rm_rf @report_dir
677
+ </span><span class="uncovered1"><a name="line77"></a> 77 end
678
+ </span><span class="uncovered0"><a name="line78"></a> 78
679
+ </span><span class="uncovered1"><a name="line79"></a> 79 self
680
+ </span><span class="uncovered0"><a name="line80"></a> 80 end
681
+ </span><span class="uncovered1"><a name="line81"></a> 81 end
682
+ </span><span class="inferred0"><a name="line82"></a> 82
683
+ </span><span class="marked1"><a name="line83"></a> 83 class NCoverConsoleCmd
684
+ </span><span class="marked0"><a name="line84"></a> 84 def initialize(report_dir, dll_to_execute, params)
685
+ </span><span class="uncovered1"><a name="line85"></a> 85 params ||= {}
686
+ </span><span class="uncovered0"><a name="line86"></a> 86 arch = params[:arch] || ENV['PROCESSOR_ARCHITECTURE']
687
+ </span><span class="uncovered1"><a name="line87"></a> 87 @exe = params[:ncover_exe] || File.join(TOOLS_DIR, 'ncover', arch, 'ncover.console.exe')
688
+ </span><span class="uncovered0"><a name="line88"></a> 88 @dll_to_execute = dll_to_execute
689
+ </span><span class="uncovered1"><a name="line89"></a> 89 ofname = File.split(dll_to_execute)[1].sub(/(\.dll)/, '') + '.coverage.xml'
690
+ </span><span class="uncovered0"><a name="line90"></a> 90 @output_file = File.join(report_dir, ofname)
691
+ </span><span class="uncovered1"><a name="line91"></a> 91
692
+ </span><span class="uncovered0"><a name="line92"></a> 92 @exclude_assemblies_regex = params[:exclude_assemblies_regex] || ['.*Tests.*']
693
+ </span><span class="uncovered1"><a name="line93"></a> 93 @exclude_assemblies_regex.push('ISymWrapper')
694
+ </span><span class="uncovered0"><a name="line94"></a> 94
695
+ </span><span class="uncovered1"><a name="line95"></a> 95 @profile_iis = params[:profile_iis] || false
696
+ </span><span class="uncovered0"><a name="line96"></a> 96 @working_dir = params[:working_dir] || Pathname.new(@dll_to_execute).dirname
697
+ </span><span class="uncovered1"><a name="line97"></a> 97
698
+ </span><span class="uncovered0"><a name="line98"></a> 98 @is_complete_version = `#{@exe}`.include?('NCover Complete v')
699
+ </span><span class="uncovered1"><a name="line99"></a> 99 end
700
+ </span><span class="inferred0"><a name="line100"></a>100
701
+ </span><span class="marked1"><a name="line101"></a>101 def cmdToRun
702
+ </span><span class="uncovered0"><a name="line102"></a>102 x = XUnitConsoleCmd.new(@dll_to_execute, '', nil, {})
703
+ </span><span class="uncovered1"><a name="line103"></a>103 x.cmd
704
+ </span><span class="uncovered0"><a name="line104"></a>104 end
705
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
706
+ </span><span class="marked0"><a name="line106"></a>106 def bi
707
+ </span><span class="uncovered1"><a name="line107"></a>107 return &quot;//bi #{Versioner.new.get.to_s}&quot;
708
+ </span><span class="uncovered0"><a name="line108"></a>108 end
709
+ </span><span class="inferred1"><a name="line109"></a>109
710
+ </span><span class="marked0"><a name="line110"></a>110 def working_dir
711
+ </span><span class="uncovered1"><a name="line111"></a>111 return &quot;//w #{@working_dir}&quot;
712
+ </span><span class="uncovered0"><a name="line112"></a>112 end
713
+ </span><span class="inferred1"><a name="line113"></a>113
714
+ </span><span class="marked0"><a name="line114"></a>114 def iis
715
+ </span><span class="uncovered1"><a name="line115"></a>115 return '' unless @is_complete_version
716
+ </span><span class="uncovered0"><a name="line116"></a>116 return &quot;//iis&quot; if @profile_iis
717
+ </span><span class="uncovered1"><a name="line117"></a>117 end
718
+ </span><span class="inferred0"><a name="line118"></a>118
719
+ </span><span class="marked1"><a name="line119"></a>119 def exclude_assemblies
720
+ </span><span class="uncovered0"><a name="line120"></a>120 return '' unless @is_complete_version
721
+ </span><span class="uncovered1"><a name="line121"></a>121 if @exclude_assemblies_regex.instance_of?(Array) &amp;&amp; @exclude_assemblies_regex.length &gt; 0
722
+ </span><span class="uncovered0"><a name="line122"></a>122 return '//eas ' + @exclude_assemblies_regex.join(';')
723
+ </span><span class="uncovered1"><a name="line123"></a>123 end
724
+ </span><span class="uncovered0"><a name="line124"></a>124 return '//eas ' + @exclude_assemblies_regex if @exclude_assemblies_regex.instance_of?(String)
725
+ </span><span class="uncovered1"><a name="line125"></a>125 return ''
726
+ </span><span class="uncovered0"><a name="line126"></a>126 end
727
+ </span><span class="inferred1"><a name="line127"></a>127
728
+ </span><span class="marked0"><a name="line128"></a>128 def cmd
729
+ </span><span class="uncovered1"><a name="line129"></a>129 &quot;\&quot;#{@exe}\&quot; #{cmdToRun} //x #{@output_file} #{exclude_assemblies} #{bi} #{working_dir} #{iis}&quot;
730
730
  </span><span class="uncovered0"><a name="line130"></a>130 end
731
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
732
+ </span><span class="marked0"><a name="line132"></a>132 def run
733
+ </span><span class="uncovered1"><a name="line133"></a>133 puts cmd if VERBOSE
734
+ </span><span class="uncovered0"><a name="line134"></a>134 sh cmd
735
+ </span><span class="uncovered1"><a name="line135"></a>135 end
736
+ </span><span class="uncovered0"><a name="line136"></a>136 end
737
+ </span><span class="inferred1"><a name="line137"></a>137
738
+ </span><span class="marked0"><a name="line138"></a>138 class NCoverReportingCmd
739
+ </span><span class="marked1"><a name="line139"></a>139 def initialize(report_dir, coverage_files, params)
740
+ </span><span class="uncovered0"><a name="line140"></a>140 @report_dir = report_dir
741
+ </span><span class="uncovered1"><a name="line141"></a>141 @coverage_files = coverage_files || []
742
+ </span><span class="uncovered0"><a name="line142"></a>142
743
+ </span><span class="uncovered1"><a name="line143"></a>143 params ||= {}
744
+ </span><span class="uncovered0"><a name="line144"></a>144 arch = params[:arch] || ENV['PROCESSOR_ARCHITECTURE']
745
+ </span><span class="uncovered1"><a name="line145"></a>145 @exe = params[:ncover_reporting_exe] || File.join(TOOLS_DIR, 'ncover', arch, 'ncover.reporting.exe')
746
+ </span><span class="uncovered0"><a name="line146"></a>146
747
+ </span><span class="uncovered1"><a name="line147"></a>147 @is_complete_version = `#{@exe}`.include?('NCover Reporting Complete v')
748
+ </span><span class="uncovered0"><a name="line148"></a>148 # required
749
+ </span><span class="uncovered1"><a name="line149"></a>149 @reports = params[:reports] || ['Summary', 'UncoveredCodeSections', 'FullCoverageReport']
750
+ </span><span class="uncovered0"><a name="line150"></a>150 @output_path = File.join(@report_dir)
751
+ </span><span class="uncovered1"><a name="line151"></a>151
752
+ </span><span class="uncovered0"><a name="line152"></a>152 # optional
753
+ </span><span class="uncovered1"><a name="line153"></a>153 @sort_order = params[:sort] || 'CoveragePercentageAscending'
754
+ </span><span class="uncovered0"><a name="line154"></a>154 @project_name = params[:project_name] || PRODUCT_NAME
755
+ </span><span class="uncovered1"><a name="line155"></a>155 end
756
+ </span><span class="inferred0"><a name="line156"></a>156
757
+ </span><span class="marked1"><a name="line157"></a>157 def coverage_files
758
+ </span><span class="uncovered0"><a name="line158"></a>158 list = ''
759
+ </span><span class="uncovered1"><a name="line159"></a>159 @coverage_files.each do |cf|
760
+ </span><span class="uncovered0"><a name="line160"></a>160 list += &quot;\&quot;#{cf}\&quot; &quot;
761
+ </span><span class="uncovered1"><a name="line161"></a>161 end
762
+ </span><span class="uncovered0"><a name="line162"></a>162 return list
763
+ </span><span class="uncovered1"><a name="line163"></a>163 end
764
+ </span><span class="inferred0"><a name="line164"></a>164
765
+ </span><span class="marked1"><a name="line165"></a>165 def build_id
766
+ </span><span class="uncovered0"><a name="line166"></a>166 return &quot;//bi #{Versioner.new.get.to_s}&quot;
767
+ </span><span class="uncovered1"><a name="line167"></a>167 end
768
+ </span><span class="inferred0"><a name="line168"></a>168
769
+ </span><span class="marked1"><a name="line169"></a>169 def output_reports
770
+ </span><span class="uncovered0"><a name="line170"></a>170 cmd = ''
771
+ </span><span class="uncovered1"><a name="line171"></a>171 if @is_complete_version
772
+ </span><span class="uncovered0"><a name="line172"></a>172 @reports.each do |r|
773
+ </span><span class="uncovered1"><a name="line173"></a>173 cmd += &quot;//or #{r}&quot;
774
+ </span><span class="uncovered0"><a name="line174"></a>174 end
775
+ </span><span class="uncovered1"><a name="line175"></a>175 else
776
+ </span><span class="uncovered0"><a name="line176"></a>176 classic_version_reports_allowed = ['Summary', 'SymbolModule', 'SymbolModuleNamespace', 'SymbolModuleNamespaceClass', 'SymbolModuleNamespaceClassMethod']
777
+ </span><span class="uncovered1"><a name="line177"></a>177 @reports.each do |r|
778
+ </span><span class="uncovered0"><a name="line178"></a>178 cmd += &quot;//or #{r} &quot; if classic_version_reports_allowed.include?(r)
779
+ </span><span class="uncovered1"><a name="line179"></a>179 end
780
+ </span><span class="uncovered0"><a name="line180"></a>180 end
781
+ </span><span class="uncovered1"><a name="line181"></a>181 return cmd
782
+ </span><span class="uncovered0"><a name="line182"></a>182 end
783
+ </span><span class="inferred1"><a name="line183"></a>183
784
+ </span><span class="marked0"><a name="line184"></a>184 def output_path
785
+ </span><span class="uncovered1"><a name="line185"></a>185 return &quot;//op \&quot;#{@output_path}\&quot;&quot;
786
+ </span><span class="uncovered0"><a name="line186"></a>186 end
787
+ </span><span class="inferred1"><a name="line187"></a>187
788
+ </span><span class="marked0"><a name="line188"></a>188 def sort_order
789
+ </span><span class="uncovered1"><a name="line189"></a>189 return &quot;//so #{@sort_order}&quot;
790
+ </span><span class="uncovered0"><a name="line190"></a>190 end
791
+ </span><span class="inferred1"><a name="line191"></a>191
792
+ </span><span class="marked0"><a name="line192"></a>192 def project_name
793
+ </span><span class="uncovered1"><a name="line193"></a>193 return &quot;//p #{@project_name}&quot; unless @project_name.nil?
794
+ </span><span class="uncovered0"><a name="line194"></a>194 end
795
+ </span><span class="inferred1"><a name="line195"></a>195
796
+ </span><span class="marked0"><a name="line196"></a>196 def cmd
797
+ </span><span class="uncovered1"><a name="line197"></a>197 return &quot;\&quot;#{@exe}\&quot; #{coverage_files} #{build_id} #{output_reports} #{output_path} #{sort_order} #{project_name}&quot;
798
+ </span><span class="uncovered0"><a name="line198"></a>198 end
799
+ </span><span class="inferred1"><a name="line199"></a>199
800
+ </span><span class="marked0"><a name="line200"></a>200 def run
801
+ </span><span class="uncovered1"><a name="line201"></a>201 puts cmd if VERBOSE
802
+ </span><span class="uncovered0"><a name="line202"></a>202 sh cmd
803
+ </span><span class="uncovered1"><a name="line203"></a>203 end
804
+ </span><span class="uncovered0"><a name="line204"></a>204 end
764
805
  </span></pre><hr/>
765
806
  <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
766
807
  version 0.8.1.2.</p>