calabash-cucumber 0.9.43 → 0.9.44
Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,9 @@ module Calabash
|
|
7
7
|
|
8
8
|
module SimulatorHelper
|
9
9
|
|
10
|
-
|
10
|
+
DERIVED_DATA = File.expand_path("~/Library/Developer/Xcode/DerivedData")
|
11
|
+
DEFAULT_DERIVED_DATA_INFO = File.expand_path("#{DERIVED_DATA}/*/info.plist")
|
12
|
+
|
11
13
|
MAX_PING_ATTEMPTS = 5
|
12
14
|
|
13
15
|
def self.relaunch(path, sdk = nil, version = 'iphone')
|
@@ -26,7 +28,7 @@ module Calabash
|
|
26
28
|
def self.derived_data_dir_for_project
|
27
29
|
dir = project_dir
|
28
30
|
|
29
|
-
info_plist = Dir.glob(
|
31
|
+
info_plist = Dir.glob(DEFAULT_DERIVED_DATA_INFO).find { |plist_file|
|
30
32
|
begin
|
31
33
|
plist = CFPropertyList::List.new(:file => plist_file)
|
32
34
|
hash = CFPropertyList.native_types(plist.value)
|
@@ -37,22 +39,56 @@ module Calabash
|
|
37
39
|
false
|
38
40
|
end
|
39
41
|
}
|
42
|
+
|
40
43
|
if not info_plist.nil?
|
41
|
-
File.dirname(info_plist)
|
44
|
+
return File.dirname(info_plist)
|
42
45
|
else
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
46
|
+
res = Dir.glob("#{dir}/*.xcodeproj")
|
47
|
+
if res.empty?
|
48
|
+
raise "Unable to find *.xcodeproj in #{dir}"
|
49
|
+
elsif res.count > 1
|
50
|
+
raise "Unable to found several *.xcodeproj in #{dir}: #{res}"
|
51
|
+
end
|
52
|
+
|
53
|
+
xcode_proj_name = res.first.split(".xcodeproj")[0]
|
54
|
+
|
55
|
+
xcode_proj_name = File.basename(xcode_proj_name)
|
56
|
+
|
57
|
+
build_dirs = Dir.glob("#{DERIVED_DATA}/*").find_all do |xc_proj|
|
58
|
+
File.basename(xc_proj).start_with?(xcode_proj_name)
|
59
|
+
end
|
60
|
+
|
61
|
+
if (build_dirs.count == 0)
|
62
|
+
msg = ["Unable to find your built app."]
|
63
|
+
msg << "This means that Calabash can't automatically launch iOS simulator."
|
64
|
+
msg << "Searched in Xcode 4.x default: #{DEFAULT_DERIVED_DATA_INFO}"
|
65
|
+
msg << ""
|
66
|
+
msg << "To fix there are a couple of options:\n"
|
67
|
+
msg << "Option 1) Make sure you are running this command from your project directory, "
|
68
|
+
msg << "i.e., the directory containing your .xcodeproj file."
|
69
|
+
msg << "In Xcode, build your calabash target for simulator."
|
70
|
+
msg << "Check that your app can be found in\n #{File.expand_path("~/Library/Developer/Xcode/DerivedData")}"
|
71
|
+
msg << "\n\nOption 2). In features/support/launch.rb set APP_BUNDLE_PATH to"
|
72
|
+
msg << "the path where Xcode has built your Calabash target."
|
73
|
+
msg << "Alternatively you can use the environment variable APP_BUNDLE_PATH.\n"
|
74
|
+
raise msg.join("\n")
|
75
|
+
|
76
|
+
elsif (build_dirs.count > 1)
|
77
|
+
msg = ["Unable to auto detect APP_BUNDLE_PATH."]
|
78
|
+
msg << "You have several projects with the same name: #{xcode_proj_name} in #{DERIVED_DATA}:\n"
|
79
|
+
msg << build_dirs.join("\n")
|
80
|
+
|
81
|
+
msg << "\nThis means that Calabash can't automatically launch iOS simulator."
|
82
|
+
msg << "Searched in Xcode 4.x default: #{DEFAULT_DERIVED_DATA_INFO}"
|
83
|
+
msg << "\nIn features/support/launch.rb set APP_BUNDLE_PATH to"
|
84
|
+
msg << "the path where Xcode has built your Calabash target."
|
85
|
+
msg << "Alternatively you can use the environment variable APP_BUNDLE_PATH.\n"
|
86
|
+
raise msg.join("\n")
|
87
|
+
else
|
88
|
+
puts "Found potential build dir: #{build_dirs.first}"
|
89
|
+
puts "Checking..."
|
90
|
+
return build_dirs.first
|
91
|
+
end
|
56
92
|
end
|
57
93
|
end
|
58
94
|
|
@@ -179,4 +215,3 @@ module Calabash
|
|
179
215
|
|
180
216
|
end
|
181
217
|
end
|
182
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: calabash-cucumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.44
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cucumber
|
16
|
-
requirement: &
|
16
|
+
requirement: &70316273929280 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70316273929280
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &70316273928640 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70316273928640
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: CFPropertyList
|
38
|
-
requirement: &
|
38
|
+
requirement: &70316273926740 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70316273926740
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: sim_launcher
|
49
|
-
requirement: &
|
49
|
+
requirement: &70316273925720 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70316273925720
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: slowhandcuke
|
60
|
-
requirement: &
|
60
|
+
requirement: &70316273924200 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70316273924200
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: net-http-persistent
|
71
|
-
requirement: &
|
71
|
+
requirement: &70316273922960 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70316273922960
|
80
80
|
description: calabash-cucumber drives tests for native iOS apps. You must link your
|
81
81
|
app with calabash-ios-server framework to execute tests.
|
82
82
|
email:
|