rake-dotnet 0.1.17 → 0.1.18

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.
@@ -474,7 +474,7 @@ a {
474
474
  <dd class="spec not_implemented"><span class="not_implemented_spec_name">should require a test_dll (PENDING: Not Yet Implemented)</span></dd>
475
475
  </dl>
476
476
  </div>
477
- <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>0.09 seconds</strong>";</script>
477
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>0.066 seconds</strong>";</script>
478
478
  <script type="text/javascript">document.getElementById('totals').innerHTML = "75 examples, 0 failures, 45 pending";</script>
479
479
  </div>
480
480
  </div>
@@ -770,6 +770,8 @@ class NCoverTask < Rake::TaskLib
770
770
  @report_dir = params[:report_dir] || File.join(OUT_DIR, 'reports', 'ncover')
771
771
  @deps = params[:deps] || []
772
772
  tool_defaults = {:arch => ENV['PROCESSOR_ARCHITECTURE']}
773
+ puts ENV['PROCESSOR_ARCHITECTURE']
774
+ puts 'NCOVER TD: ' + tool_defaults.to_s
773
775
  @profile_options = tool_defaults.merge(params[:profile_options] || {})
774
776
  @reporting_options = tool_defaults.merge(params[:reporting_options] || {})
775
777
 
@@ -787,10 +789,22 @@ class NCoverTask < Rake::TaskLib
787
789
  reports_dir_regex = RakeDotNet::regexify(@report_dir)
788
790
  rule(/#{reports_dir_regex}\/.*\.coverage\.xml/) do |r|
789
791
  dll_to_execute = r.name.sub(/#{@report_dir}\/(.*)\.coverage\.xml/, "#{@bin_dir}/\\1.dll")
792
+ if (shouldProfileIis(dll_to_execute))
793
+ @profile_options[:profile_iis] = true
794
+ end
790
795
  nc = NCoverConsoleCmd.new(@report_dir, dll_to_execute, @profile_options)
791
796
  nc.run
792
797
  end
793
798
 
799
+ def shouldProfileIis(dll)
800
+ dll = dll.downcase
801
+ return true if dll.include? 'functional'
802
+ return true if dll.include? 'browser'
803
+ return true if dll.include? 'selenium'
804
+ return true if dll.include? 'watin'
805
+ return false
806
+ end
807
+
794
808
  desc "Generate ncover coverage XML, one file per test-suite that exercises your product"
795
809
  task :ncover_profile, [:dlls_to_run] => [@report_dir] do |t, args|
796
810
  dlls_to_run_list = FileList.new
@@ -803,16 +817,24 @@ class NCoverTask < Rake::TaskLib
803
817
  coverage_file = File.join(@report_dir, cf_name)
804
818
  Rake::FileTask[coverage_file].invoke
805
819
  end
820
+ end
806
821
 
822
+ rule(/#{reports_dir_regex}\/.*\//) do |report_set|
823
+ set_name = report_set.name.match(/#{reports_dir_regex}\/(.*)\//)[1]
824
+ profile_xml = File.join(@report_dir, "#{set_name}.coverage.xml")
825
+ mkdir_p report_set.name
826
+ @reporting_options[:project_name] = set_name
827
+ ncr = NCoverReportingCmd.new(report_set.name, profile_xml, @reporting_options)
828
+ ncr.run
807
829
  end
808
830
 
809
- desc "Generate ncover coverage report(s), on all coverage files, merged together"
831
+ desc "Generate ncover coverage report(s), on all coverage files"
810
832
  task :ncover_reports => [:ncover_profile] do
811
- # ncover lets us use *.coverage.xml to merge together files
812
- include = [File.join(@report_dir, '*.coverage.xml')]
813
- @reporting_options[:name] = 'merged'
814
- ncr = NCoverReportingCmd.new(@report_dir, include, @reporting_options)
815
- ncr.run
833
+ report_sets = FileList.new("#{@report_dir}/**/*.coverage.xml")
834
+ report_sets.each do |set|
835
+ cov_report = set.sub('.coverage.xml', '/')
836
+ Rake::FileTask[cov_report].invoke
837
+ end
816
838
  end
817
839
 
818
840
  task :clobber_ncover do
@@ -831,9 +853,14 @@ class NCoverConsoleCmd
831
853
  @dll_to_execute = dll_to_execute
832
854
  ofname = File.split(dll_to_execute)[1].sub(/(\.dll)/, '') + '.coverage.xml'
833
855
  @output_file = File.join(report_dir, ofname)
856
+
834
857
  @exclude_assemblies_regex = params[:exclude_assemblies_regex] || ['.*Tests.*']
835
858
  @exclude_assemblies_regex.push('ISymWrapper')
859
+
860
+ @profile_iis = params[:profile_iis] || false
836
861
  @working_dir = params[:working_dir] || Pathname.new(@dll_to_execute).dirname
862
+
863
+ @is_complete_version = `#{@exe}`.include?('NCover Complete v')
837
864
  end
838
865
 
839
866
  def cmdToRun
@@ -842,22 +869,29 @@ class NCoverConsoleCmd
842
869
  end
843
870
 
844
871
  def bi
845
- "//bi #{Versioner.new.get.to_s}"
872
+ return "//bi #{Versioner.new.get.to_s}"
846
873
  end
847
874
 
848
875
  def working_dir
849
- "//w #{@working_dir}"
876
+ return "//w #{@working_dir}"
877
+ end
878
+
879
+ def iis
880
+ return '' unless @is_complete_version
881
+ return "//iis" if @profile_iis
850
882
  end
851
883
 
852
884
  def exclude_assemblies
853
- if @exclude_assemblies_regex.instance_of?(Array)
885
+ return '' unless @is_complete_version
886
+ if @exclude_assemblies_regex.instance_of?(Array) && @exclude_assemblies_regex.length > 0
854
887
  return '//eas ' + @exclude_assemblies_regex.join(';')
855
888
  end
856
889
  return '//eas ' + @exclude_assemblies_regex if @exclude_assemblies_regex.instance_of?(String)
890
+ return ''
857
891
  end
858
892
 
859
893
  def cmd
860
- "\"#{@exe}\" #{cmdToRun} //x #{@output_file} #{exclude_assemblies} #{bi} #{working_dir}"
894
+ "\"#{@exe}\" #{cmdToRun} //x #{@output_file} #{exclude_assemblies} #{bi} #{working_dir} #{iis}"
861
895
  end
862
896
 
863
897
  def run
@@ -874,7 +908,9 @@ class NCoverReportingCmd
874
908
  params ||= {}
875
909
  arch = params[:arch] || ENV['PROCESSOR_ARCHITECTURE']
876
910
  @exe = params[:ncover_reporting_exe] || File.join(TOOLS_DIR, 'ncover', arch, 'ncover.reporting.exe')
911
+ puts 'NR: ' + params[:arch].to_s + ' ' + arch
877
912
 
913
+ @is_complete_version = `#{@exe}`.include?('NCover Reporting Complete v')
878
914
  # required
879
915
  @reports = params[:reports] || ['Summary', 'UncoveredCodeSections', 'FullCoverageReport']
880
916
  @output_path = File.join(@report_dir)
@@ -889,38 +925,46 @@ class NCoverReportingCmd
889
925
  @coverage_files.each do |cf|
890
926
  list += "\"#{cf}\" "
891
927
  end
892
- list
928
+ return list
893
929
  end
894
930
 
895
931
  def build_id
896
- "//bi #{Versioner.new.get.to_s}"
932
+ return "//bi #{Versioner.new.get.to_s}"
897
933
  end
898
934
 
899
935
  def output_reports
900
936
  cmd = ''
901
- @reports.each do |r|
902
- cmd += "//or #{r} "
937
+ if @is_complete_version
938
+ @reports.each do |r|
939
+ cmd += "//or #{r}"
940
+ end
941
+ else
942
+ classic_version_reports_allowed = ['Summary', 'SymbolModule', 'SymbolModuleNamespace', 'SymbolModuleNamespaceClass', 'SymbolModuleNamespaceClassMethod']
943
+ @reports.each do |r|
944
+ cmd += "//or #{r} " if classic_version_reports_allowed.include?(r)
945
+ end
903
946
  end
904
947
  return cmd
905
948
  end
906
949
 
907
950
  def output_path
908
- "//op \"#{@output_path}\""
951
+ return "//op \"#{@output_path}\""
909
952
  end
910
953
 
911
954
  def sort_order
912
- "//so #{@sort_order}"
955
+ return "//so #{@sort_order}"
913
956
  end
914
957
 
915
958
  def project_name
916
- "//p #{@project_name}" unless @project_name.nil?
959
+ return "//p #{@project_name}" unless @project_name.nil?
917
960
  end
918
961
 
919
962
  def cmd
920
- "\"#{@exe}\" #{coverage_files} #{build_id} #{output_reports} #{output_path} #{sort_order} #{project_name}"
963
+ return "\"#{@exe}\" #{coverage_files} #{build_id} #{output_reports} #{output_path} #{sort_order} #{project_name}"
921
964
  end
922
965
 
923
966
  def run
967
+ puts cmd if VERBOSE
924
968
  sh cmd
925
969
  end
926
970
  end
@@ -1177,7 +1221,7 @@ class XUnitTask < Rake::TaskLib
1177
1221
 
1178
1222
  def initialize(params={}) # :yield: self
1179
1223
  @suites_dir = params[:suites_dir] || File.join(OUT_DIR, 'bin')
1180
- @reports_dir = params[:reports_dir] || File.join(OUT_DIR, 'reports')
1224
+ @reports_dir = params[:reports_dir] || File.join(OUT_DIR, 'reports', 'tests')
1181
1225
  @options = params[:options] || {}
1182
1226
  @deps = params[:deps] || []
1183
1227
 
@@ -1193,15 +1237,23 @@ class XUnitTask < Rake::TaskLib
1193
1237
 
1194
1238
  rule(/#{@reports_dir}\/.*Tests.*\//) do |r|
1195
1239
  suite = r.name.match(/.*\/(.*Tests)\//)[1]
1196
- testsDll = File.join(@suites_dir, suite + '.dll')
1240
+ run(suite)
1241
+ end
1242
+
1243
+ rule(/xt-.*Tests.*/) do |r|
1244
+ suite = r.name.match(/xunit-(.*Tests)/)[1]
1245
+ run(suite)
1246
+ end
1247
+
1248
+ def run(suite)
1249
+ tests_dll = File.join(@suites_dir, suite + '.dll')
1197
1250
  out_dir = File.join(@reports_dir, suite)
1198
- unless File.exist?(out_dir) && uptodate?(testsDll, out_dir)
1251
+ unless File.exist?(out_dir) && uptodate?(tests_dll, out_dir)
1199
1252
  mkdir_p(out_dir) unless File.exist?(out_dir)
1200
- x = XUnitConsoleCmd.new(testsDll, out_dir, nil, options=@options)
1253
+ x = XUnitConsoleCmd.new(tests_dll, out_dir, nil, options=@options)
1201
1254
  x.run
1202
1255
  end
1203
1256
  end
1204
-
1205
1257
  directory @reports_dir
1206
1258
 
1207
1259
  desc "Generate test reports (which ones, depends on the content of XUNIT_OPTS) inside of each directory specified, where each directory matches a test-suite name (give relative paths) (otherwise, all matching #{@suites_dir}/*Tests.*.dll) and write reports to #{@reports_dir}"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-dotnet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.17
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter MouncePeter Mounce
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-10 00:00:00 +00:00
12
+ date: 2009-11-26 00:00:00 +00:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -22,36 +22,6 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: 0.8.3
24
24
  version:
25
- - !ruby/object:Gem::Dependency
26
- name: rspec
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 1.2.9
34
- version:
35
- - !ruby/object:Gem::Dependency
36
- name: rcov
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 0.8.1
44
- version:
45
- - !ruby/object:Gem::Dependency
46
- name: diff-lcs
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 1.1.2
54
- version:
55
25
  - !ruby/object:Gem::Dependency
56
26
  name: hoe
57
27
  type: :development