flaky 0.0.14 → 0.0.15

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: 144d71285cb56132d67177ff0c825f98e1fde159
4
- data.tar.gz: 59b262d5f66bd5d57601de1c1c756a2dee440d2f
3
+ metadata.gz: 814d8119a05329833700427fea7887b139bc28c4
4
+ data.tar.gz: 0eab2db86f250b57daac494f77146d9de5e336bc
5
5
  SHA512:
6
- metadata.gz: 6a9d5ab7faf090b77da45d070029d3298d30aa05c61d37e900c123983ea9a8ab2e3020a3a0c301f6507e6dc3c6b36dc936e9b02ab396f75e894415e38dbf5885
7
- data.tar.gz: e033e2722f59eefc7cc4c01a13b53658df33e6387a14f24690e0126f6bbf19c906f03cb848ffea871d58ff68b26e36f7e9945c1f428ef036bf304ae5b21cdf90
6
+ metadata.gz: cf645eb730fa486416d96b69c5db0b6869c375f4fcda4a7997aeb6f5e1acf64c7b3ae7a7b51ed4b5d72455e5fe8766e030da16200d81f126a1934d4c560d5097
7
+ data.tar.gz: f678c427c7eed2cbcc2e6d40b6adc601ed043220ccdba65df29e80d6e004698f3c9768dc7238cc8550b3afa0e20e4597ed66789df86450644d2581691771864f
data/bin/flake CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: utf-8
3
-
3
+ require File.expand_path '../../lib/flaky', __FILE__
4
4
  usage_string = <<-'MSG'
5
5
  flake [count] ios[test_name]
6
6
 
@@ -10,12 +10,24 @@ flake 1 ios[sign_in]
10
10
  flake 3 ios
11
11
  Run all iOS tests up to 3 times
12
12
  If one run passes or 3 runs fail, then we move onto the next test.
13
+
14
+ flake 3 ios files.txt
15
+ Run select iOS tests in files.txt up to 3 times
16
+ If one run passes or 3 runs fail, then we move onto the next test.
13
17
  MSG
14
18
 
15
19
  if ARGV && ARGV.length === 1 && ARGV.first === 'auth'
16
- require File.expand_path '../../lib/flaky', __FILE__
17
20
  Flaky::AppleScript.beat_security_agent
18
21
  exit
22
+ elsif ARGV && ARGV.length === 3
23
+ # rake 3 ios files.txt
24
+ count = ARGV.first
25
+ os = ARGV[1]
26
+ file = ARGV.last
27
+ raise 'File must end in .txt' unless File.extname(ARGV.last).downcase == '.txt'
28
+ puts "Running select #{os} tests from file #{file} #{count}x"
29
+ Flaky.run_from_file count: count, os: os, file: file
30
+ exit
19
31
  else
20
32
  unless ARGV && ARGV.length === 2
21
33
  puts usage_string
@@ -30,8 +42,9 @@ require File.expand_path '../../lib/flaky', __FILE__
30
42
 
31
43
  count = ARGV.first
32
44
 
33
- single_test_match = ARGV.last.match(/(.+)\[(.*)\]$/)
34
- all_tests_match = ARGV.last.match(/(.+)$/)
45
+ last = ARGV.last
46
+ single_test_match = last.match(/(.+)\[(.*)\]$/)
47
+ all_tests_match = last.match(/(.+)$/)
35
48
 
36
49
  if single_test_match
37
50
  # we're not using full, however we have to capture it anyway.
@@ -39,10 +52,12 @@ if single_test_match
39
52
  name = File.basename test_name, '.*'
40
53
  puts "Running #{name} #{count}x"
41
54
  Flaky.run_one_test count: count, os: os, name: test_name
55
+ exit
42
56
  elsif all_tests_match
43
57
  os = all_tests_match.to_a.last
44
58
  puts "Running all #{os} tests #{count}x"
45
59
  Flaky.run_all_tests count: count, os: os
60
+ exit
46
61
  else
47
62
  puts usage_string
48
63
  exit
@@ -9,8 +9,8 @@ require 'posix/spawn' # http://rubygems.org/gems/posix-spawn
9
9
  require 'digest/md5'
10
10
 
11
11
  module Flaky
12
- VERSION = '0.0.14' unless defined? ::Flaky::VERSION
13
- DATE = '2013-11-22' unless defined? ::Flaky::DATE
12
+ VERSION = '0.0.15' unless defined? ::Flaky::VERSION
13
+ DATE = '2013-12-05' unless defined? ::Flaky::DATE
14
14
 
15
15
  # https://github.com/appium/ruby_lib/blob/0e203d76610abd519ba9d2fe9c14b50c94df5bbd/lib/appium_lib.rb#L24
16
16
  def self.add_to_path file, path=false
@@ -30,5 +30,6 @@ module Flaky
30
30
  require 'flaky/run'
31
31
 
32
32
  require 'flaky/run/all_tests'
33
+ require 'flaky/run/from_file'
33
34
  require 'flaky/run/one_test'
34
35
  end
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+ module Flaky
3
+ def self.run_from_file opts={}
4
+ raise 'Must pass :count, :os, and :file' unless opts && opts[:count] && opts[:os] && opts[:file]
5
+
6
+ count = opts[:count].to_i
7
+ os = opts[:os]
8
+ file = opts[:file]
9
+
10
+ raise ':count must be an int' unless count.kind_of?(Integer)
11
+ raise ':os must be a string' unless os.kind_of?(String)
12
+ raise ':file must be a string' unless file.kind_of?(String)
13
+
14
+ raise "#{file} doesn't exist" unless File.exists? file
15
+ tests = File.readlines(file).map { |line| File.basename(line.chomp, '.*') }
16
+ resolved_paths = []
17
+ # Convert file names into full paths
18
+ current_dir = Dir.pwd
19
+ Dir.glob(File.join current_dir, 'appium', os, 'specs', '**/*.rb') do |test_file|
20
+ if tests.include? File.basename(test_file, '.*')
21
+ resolved_paths << File.expand_path(test_file)
22
+ end
23
+ end
24
+
25
+ if tests.length != resolved_paths.length
26
+ missing_tests = []
27
+ tests.each do |test|
28
+ missing_tests << test unless File.exists? test
29
+ end
30
+ raise "Missing tests #{missing_tests}"
31
+ end
32
+
33
+ flaky = Flaky::Run.new
34
+ appium = Appium.new
35
+
36
+ raise "Rakefile doesn't exist in #{current_dir}" unless File.exists?(File.join(current_dir, 'Rakefile'))
37
+
38
+ resolved_paths.each do |test_file|
39
+ file = test_file
40
+ name = File.basename file, '.*'
41
+
42
+ raise "#{test_file} does not exist." if file.empty?
43
+
44
+ test_name = file.sub(current_dir + '/appium/', '')
45
+ test_name = File.join(File.dirname(test_name), File.basename(test_name, '.*'))
46
+
47
+ count.times do
48
+ appium.start
49
+ run_cmd = "cd #{current_dir}; rake #{os.downcase}['#{name}']"
50
+ passed = flaky.execute run_cmd: run_cmd, test_name: test_name, appium: appium
51
+ break if passed # move onto the next test after one successful run
52
+ end
53
+ end
54
+
55
+ appium.stop
56
+ flaky.report
57
+ end
58
+ end # module Flaky
data/readme.md CHANGED
@@ -18,6 +18,7 @@ This only works with:
18
18
 
19
19
  - [Ruby / appium_lib iOS](https://github.com/appium/ruby_lib_ios)
20
20
  - iOS iPhone Simulator 6.1
21
+ - Unique test names per platform
21
22
 
22
23
  #### Security dialogs
23
24
 
@@ -1,3 +1,9 @@
1
+ #### v0.0.14 2013-11-22
2
+
3
+ - [6f21c6f](https://github.com/appium/flaky/commit/6f21c6fb899628a41e5e98e2a837e376222edf5c) Release 0.0.14
4
+ - [0cf4855](https://github.com/appium/flaky/commit/0cf485536c066b85951f3ed4317ad593db8c3bf6) Fix crash on nil log
5
+
6
+
1
7
  #### v0.0.13 2013-11-12
2
8
 
3
9
  - [33fdc42](https://github.com/appium/flaky/commit/33fdc424ccf7534c13897a7c5bc1d6e7991bfa4e) Release 0.0.13
data/todo.md CHANGED
@@ -1,6 +1,10 @@
1
1
  #### To Do
2
2
 
3
- - Save appium server log after each test.
4
3
  - Save execution time for each test. (this may already be in the minitest logs)
5
4
  - Save overall execution time.
6
- - Fix test numbering. 01, 02, etc.
5
+ - Fix test numbering. 01, 02, etc.
6
+ - Better ways to format test names
7
+
8
+ ```ruby
9
+ lines.split("\n").each { |l| puts File.basename(l.split(',').first) }; nil
10
+ ```
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flaky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - code@bootstraponline.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-22 00:00:00.000000000 Z
11
+ date: 2013-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic_duration
@@ -89,6 +89,7 @@ files:
89
89
  - lib/flaky/reset_android.rb
90
90
  - lib/flaky/run.rb
91
91
  - lib/flaky/run/all_tests.rb
92
+ - lib/flaky/run/from_file.rb
92
93
  - lib/flaky/run/one_test.rb
93
94
  - readme.md
94
95
  - release_notes.md