xcov 1.5.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8b3406fd7df676982a6c5f171dd0725594d4f204
4
- data.tar.gz: 6a264701c62cbb46fb2a2aa4ba84a83cdb07f94a
3
+ metadata.gz: 39093eb1a121b8746609124b8d4e7e8433127777
4
+ data.tar.gz: 521073d98ad4229dbbe7c2ded44235a4a236d9cc
5
5
  SHA512:
6
- metadata.gz: dcced483c0d5d5ad93e03a826c37d86d242cbd0e228cf3a4b58a07ef5eff7ad35b93187229177228b6d5928b83e76d813edf5cb03d1cf31a6ac2c70e0ac53946
7
- data.tar.gz: 075f8bc5005687506214cd5142868351916890dab9b3c240a815f745f42e44ce3b4c1be6bf2d79e1d48e7973c3261614d0f81021502b1ae6fb5fbffd1265798b
6
+ metadata.gz: d82f23e8a4ad93740091e26c1b5ee6defc71ecf2bd1c3ca25f2c9b2aeef87c467322a613de3c090aea80627c450a5e1f9f985e2d8a81183aba9a8d0c64b6a616
7
+ data.tar.gz: 4ab27e291ef1f3a6bea483911324d033624d143cc55f8c9925da8301cb7ccdeada8e6644e8b642f01eef74ba18818cde5df4b4d7c049876c5c7a18ff2e189e8d
data/README.md CHANGED
@@ -11,6 +11,8 @@
11
11
 
12
12
  **xcov** is a friendly visualizer for Xcode's code coverage files.
13
13
 
14
+ > Maintainers needed
15
+
14
16
  ## Installation
15
17
  ```
16
18
  sudo gem install xcov
@@ -58,6 +60,7 @@ xcov -w LystSDK.xcworkspace -s LystSDK -o xcov_output
58
60
  * `--output_directory` `-o`: Path for the output folder where the report files will be saved.
59
61
  * `--source_directory` `-r`: The path to project's root directory (optional).
60
62
  * `--derived_data_path` `-j`: Path of your project `Derived Data` folder (optional).
63
+ * `--xccov_file_direct_path` `-f`: Direct path to the xccoverage/xccovreport file to parse to generate code coverage (optional).
61
64
  * `--minimum_coverage_percentage` `-m`: Raise exception if overall coverage percentage is under this value (ie. 75.0).
62
65
  * `--include_test_targets`: Enables coverage reports for `.xctest` targets.
63
66
  * `--ignore_file_path` `-x`: Relative or absolute path to the file containing the list of ignored files.
@@ -152,6 +155,7 @@ If you want to keep track of the coverage evolution and get some extra features,
152
155
  [![chrisballinger](https://avatars1.githubusercontent.com/u/518687?v=3&s=50)](https://github.com/chrisballinger)
153
156
  [![ngs](https://avatars1.githubusercontent.com/u/18631?v=3&s=50)](https://github.com/ngs)
154
157
  [![aaroncrespo](https://avatars1.githubusercontent.com/u/431662?v=3&s=50)](https://github.com/aaroncrespo)
158
+ [![cmarchal](https://avatars2.githubusercontent.com/u/4172707?v=3&s=50)](https://github.com/cmarchal)
155
159
 
156
160
 
157
161
  ## License
@@ -37,12 +37,17 @@ module Xcov
37
37
 
38
38
  def parse_xccoverage
39
39
  # Find .xccoverage file
40
- extension = Xcov.config[:legacy_support] ? "xccoverage" : "xccovreport"
41
- test_logs_path = derived_data_path + "Logs/Test/"
42
- xccoverage_files = Dir["#{test_logs_path}*.#{extension}", "#{test_logs_path}*.xcresult/*/action.#{extension}"].sort_by { |filename| File.mtime(filename) }.reverse
43
-
44
- unless test_logs_path.directory? && !xccoverage_files.empty?
45
- ErrorHandler.handle_error("XccoverageFileNotFound")
40
+ # If no xccov direct path, use the old derived data path method
41
+ if xccov_file_direct_path.nil?
42
+ extension = Xcov.config[:legacy_support] ? "xccoverage" : "xccovreport"
43
+ test_logs_path = derived_data_path + "Logs/Test/"
44
+ xccoverage_files = Dir["#{test_logs_path}*.#{extension}", "#{test_logs_path}*.xcresult/*/action.#{extension}"].sort_by { |filename| File.mtime(filename) }.reverse
45
+
46
+ unless test_logs_path.directory? && !xccoverage_files.empty?
47
+ ErrorHandler.handle_error("XccoverageFileNotFound")
48
+ end
49
+ else
50
+ xccoverage_files = ["#{xccov_file_direct_path}"]
46
51
  end
47
52
 
48
53
  # Convert .xccoverage file to json
@@ -126,7 +131,7 @@ module Xcov
126
131
  # Raise exception if overall coverage is under threshold
127
132
  minimumPercentage = Xcov.config[:minimum_coverage_percentage] / 100
128
133
  if minimumPercentage > report.coverage
129
- error_message = "Actual Code Coverage (#{"%.2f%" % (report.coverage*100)}) below threshold of #{"%.2f%" % (minimumPercentage*100)}"
134
+ error_message = "Actual Code Coverage (#{"%.2f%%" % (report.coverage*100)}) below threshold of #{"%.2f%%" % (minimumPercentage*100)}"
130
135
  ErrorHandler.handle_error_with_custom_message("CoverageUnderThreshold", error_message)
131
136
  end
132
137
  end
@@ -141,7 +146,6 @@ module Xcov
141
146
  end
142
147
 
143
148
  # Auxiliar methods
144
-
145
149
  def derived_data_path
146
150
  # If DerivedData path was supplied, return
147
151
  return Pathname.new(Xcov.config[:derived_data_path]) unless Xcov.config[:derived_data_path].nil?
@@ -151,5 +155,13 @@ module Xcov
151
155
  return product_builds_path.parent.parent
152
156
  end
153
157
 
158
+ def xccov_file_direct_path
159
+ # If xccov_file_direct_path was supplied, return
160
+ if Xcov.config[:xccov_file_direct_path].nil?
161
+ return nil
162
+ end
163
+ return Pathname.new(Xcov.config[:xccov_file_direct_path])
164
+ end
165
+
154
166
  end
155
167
  end
@@ -73,6 +73,18 @@ module Xcov
73
73
  raise "Invalid derived data path, it must point to a directory".red unless File.directory?(v)
74
74
  end
75
75
  ),
76
+ FastlaneCore::ConfigItem.new(
77
+ key: :xccov_file_direct_path,
78
+ short_option: "-f",
79
+ env_name: "XCOV_FILE_DIRECT_PATH",
80
+ description: "The path to the xccoverage/xccovreport file to parse to generate code coverage",
81
+ optional: true,
82
+ verify_block: proc do |value|
83
+ v = File.expand_path(value.to_s)
84
+ raise "xccoverage/xccovreport file does not exist".red unless File.exist?(v)
85
+ raise "Invalid xccov file type (must be xccoverage or xccovreport)".red unless value.end_with? "xccoverage" or value.end_with? "xccovreport"
86
+ end
87
+ ),
76
88
  FastlaneCore::ConfigItem.new(
77
89
  key: :output_directory,
78
90
  short_option: "-o",
@@ -1,6 +1,6 @@
1
1
  module Xcov
2
2
 
3
- VERSION = "1.5.0"
3
+ VERSION = "1.5.1"
4
4
  DESCRIPTION = "xcov is a friendly visualizer for Xcode's code coverage files"
5
5
 
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcov
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Vidal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-12 00:00:00.000000000 Z
11
+ date: 2019-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastlane
@@ -196,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
196
  version: '0'
197
197
  requirements: []
198
198
  rubyforge_project:
199
- rubygems_version: 2.5.2.3
199
+ rubygems_version: 2.5.1
200
200
  signing_key:
201
201
  specification_version: 4
202
202
  summary: xcov is a friendly visualizer for Xcode's code coverage files