run_loop 2.0.8 → 2.0.9
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.
- checksums.yaml +4 -4
- data/lib/run_loop/detect_aut/detect.rb +22 -11
- data/lib/run_loop/detect_aut/errors.rb +7 -8
- data/lib/run_loop/detect_aut/xcode.rb +16 -1
- data/lib/run_loop/version.rb +1 -1
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e1857365bd24d24d05315ce7d1a010434482c4a
|
4
|
+
data.tar.gz: 8f4ea53c1879ade929b57ba8ba2a88ecd9b42085
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e0d5bb32beb634eb15bdd09b76e2fbdecd0bc3bc5018d8d4087f2beb2b46d166abc8e09d71e6a38b1c0256bbba3ef607b4661a1b4a4fb5ade8978afbf43b4b5
|
7
|
+
data.tar.gz: 1c960eb4a3b376dc824275680bf4135b68066a6b42977d6112cdb0c202213280e8dac6c8f59fbcc834b1cd50c66b9c0cbdbf2c071f3832119e615929abb76ce4
|
@@ -9,6 +9,11 @@ module RunLoop
|
|
9
9
|
include RunLoop::DetectAUT::XamarinStudio
|
10
10
|
include RunLoop::DetectAUT::Xcode
|
11
11
|
|
12
|
+
# @!visibility private
|
13
|
+
DEFAULTS = {
|
14
|
+
:search_depth => 5
|
15
|
+
}
|
16
|
+
|
12
17
|
# @!visibility private
|
13
18
|
def app_for_simulator
|
14
19
|
path = RunLoop::Environment.path_to_app_bundle
|
@@ -20,19 +25,12 @@ module RunLoop
|
|
20
25
|
search_dirs = [solution_directory]
|
21
26
|
apps = candidate_apps(search_dirs.first)
|
22
27
|
else
|
23
|
-
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
# If this is a Xamarin project, we've already searched the local
|
28
|
-
# directory tree for .app.
|
29
|
-
if apps.empty? && !xamarin_project?
|
30
|
-
search_dirs << File.expand_path("./")
|
31
|
-
apps = candidate_apps(File.expand_path("./"))
|
28
|
+
search_dirs = [Dir.pwd]
|
29
|
+
apps = candidate_apps(search_dirs.first)
|
32
30
|
end
|
33
31
|
|
34
32
|
if apps.empty?
|
35
|
-
raise_no_simulator_app_found(search_dirs)
|
33
|
+
raise_no_simulator_app_found(search_dirs, DEFAULTS[:search_depth])
|
36
34
|
end
|
37
35
|
|
38
36
|
app = select_most_recent_app(apps)
|
@@ -65,7 +63,12 @@ module RunLoop
|
|
65
63
|
# @param [String] base_dir where to start the recursive search
|
66
64
|
def candidate_apps(base_dir)
|
67
65
|
candidates = []
|
68
|
-
|
66
|
+
|
67
|
+
globs = globs_for_app_search(base_dir)
|
68
|
+
Dir.glob(globs).each do |bundle_path|
|
69
|
+
# Gems, like run-loop, can contain *.app if the user is building
|
70
|
+
# from :git =>, :github =>, or :path => sources.
|
71
|
+
next if bundle_path[/vendor\/cache/, 0] != nil
|
69
72
|
app = app_or_nil(bundle_path)
|
70
73
|
candidates << app if app
|
71
74
|
end
|
@@ -91,6 +94,14 @@ module RunLoop
|
|
91
94
|
path = File.join(app.path, app.executable_name)
|
92
95
|
File.mtime(path)
|
93
96
|
end
|
97
|
+
|
98
|
+
# @!visibility private
|
99
|
+
def globs_for_app_search(base_dir)
|
100
|
+
search_depth = DEFAULTS[:search_depth]
|
101
|
+
Array.new(search_depth) do |depth|
|
102
|
+
File.join(base_dir, *Array.new(depth) { |_| "*"}, "*.app")
|
103
|
+
end
|
104
|
+
end
|
94
105
|
end
|
95
106
|
end
|
96
107
|
end
|
@@ -59,7 +59,7 @@ $ XCODEPROJ=MyiOSApp.xcodeproj
|
|
59
59
|
raise RunLoop::MultipleXcodeprojError,
|
60
60
|
%Q[Found multiple .xcodeproj directories:
|
61
61
|
|
62
|
-
#{projects.
|
62
|
+
#{projects.join($-0)}
|
63
63
|
|
64
64
|
Which project contains the target of the application you are trying to test?
|
65
65
|
|
@@ -106,19 +106,18 @@ $ SOLUTION=~/some/other/directory/MyApp.sln
|
|
106
106
|
|
107
107
|
# @!visibility private
|
108
108
|
# Raised when no app can found by the discovery algorithm
|
109
|
-
def raise_no_simulator_app_found(search_directories)
|
109
|
+
def raise_no_simulator_app_found(search_directories, search_depth)
|
110
110
|
raise RunLoop::NoSimulatorAppFoundError,
|
111
|
-
|
111
|
+
%Q[Recursively searched these directories to depth #{search_depth}:
|
112
112
|
|
113
|
-
#{search_directories.
|
113
|
+
#{search_directories.join($-0)}
|
114
114
|
|
115
|
-
but could not find any .app for the simulator that
|
116
|
-
server.
|
115
|
+
but could not find any .app for the simulator that links the Calabash iOS server.
|
117
116
|
|
118
117
|
Make sure you have built your app for a simulator target from Xcode.
|
119
118
|
|
120
|
-
If you testing a stand-alone .app (you don't have an Xcode project), put
|
121
|
-
.app in the same directory (or below) the directory you run `cucumber` from.
|
119
|
+
If you are testing a stand-alone .app (you don't have an Xcode project), put
|
120
|
+
your .app in the same directory (or below) the directory you run `cucumber` from.
|
122
121
|
]
|
123
122
|
end
|
124
123
|
end
|
@@ -30,7 +30,19 @@ module RunLoop
|
|
30
30
|
|
31
31
|
# @!visibility private
|
32
32
|
def find_xcodeproj
|
33
|
-
|
33
|
+
xcode_projects = []
|
34
|
+
Dir.glob("#{Dir.pwd}/**/*.xcodeproj").each do |path|
|
35
|
+
next if ignore_xcodeproj?(path)
|
36
|
+
xcode_projects << path
|
37
|
+
end
|
38
|
+
xcode_projects
|
39
|
+
end
|
40
|
+
|
41
|
+
# @!visibility private
|
42
|
+
def ignore_xcodeproj?(path)
|
43
|
+
path[/CordovaLib/, 0] ||
|
44
|
+
path[/Pods/, 0] ||
|
45
|
+
path[/Carthage/, 0]
|
34
46
|
end
|
35
47
|
|
36
48
|
# @!visibility private
|
@@ -42,6 +54,9 @@ module RunLoop
|
|
42
54
|
dirs_to_search << dir_from_prefs
|
43
55
|
end
|
44
56
|
|
57
|
+
dirs_to_search << Dir.pwd
|
58
|
+
dirs_to_search.uniq!
|
59
|
+
|
45
60
|
apps = []
|
46
61
|
dirs_to_search.each do |dir|
|
47
62
|
# defined in detect_aut/apps.rb
|
data/lib/run_loop/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: run_loop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karl Krukow
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -373,4 +373,3 @@ specification_version: 4
|
|
373
373
|
summary: The bridge between Calabash iOS and Xcode command-line tools like instruments
|
374
374
|
and simctl.
|
375
375
|
test_files: []
|
376
|
-
has_rdoc:
|