Skip to content

Commit a88b320

Browse files
authored
ci: Use helper function to run tests in fastlane (#5429)
* ci: Use helper function to run tests in fastlane * Fix configuration var not found * Add missing parameters
1 parent d955d00 commit a88b320

File tree

1 file changed

+32
-56
lines changed

1 file changed

+32
-56
lines changed

fastlane/Fastfile

Lines changed: 32 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,24 @@ platform :ios do
77

88
ios_swift_infoplist_path = "./Samples/iOS-Swift/iOS-Swift/Info.plist"
99
ios_swift_clip_infoplist_path = "./Samples/iOS-Swift/iOS-SwiftClip/Info.plist"
10-
configuration = if is_ci then 'TestCI' else 'Test' end
10+
11+
# Helper method to run tests with common configuration
12+
def run_ui_tests(scheme:, result_bundle_name:, device: nil, address_sanitizer: false)
13+
configuration = if is_ci then 'TestCI' else 'Test' end
14+
result_bundle_path = "test_results/#{result_bundle_name}.xcresult"
15+
FileUtils.rm_r(result_bundle_path) if File.exist?(result_bundle_path)
16+
17+
run_tests(
18+
workspace: "Sentry.xcworkspace",
19+
scheme: scheme,
20+
configuration: configuration,
21+
xcodebuild_formatter: "xcbeautify --report junit",
22+
result_bundle: true,
23+
result_bundle_path: "fastlane/#{result_bundle_path}",
24+
device: device,
25+
address_sanitizer: address_sanitizer
26+
)
27+
end
1128

1229
lane :prepare_xcframework_signing do
1330
setup_ci
@@ -177,16 +194,9 @@ platform :ios do
177194
end
178195

179196
lane :ui_critical_tests_ios_swiftui do
180-
# FileUtils resolves relative paths to the `fastlane` directory, while lanes resolve relative to root.
181-
result_bundle_path = "test_results/ui_critical_tests_ios_swiftui.xcresult"
182-
FileUtils.rm_r(result_bundle_path) if File.exist?(result_bundle_path)
183-
run_tests(
184-
workspace: "Sentry.xcworkspace",
197+
run_ui_tests(
185198
scheme: "SwiftUITestSample",
186-
configuration: "Debug",
187-
xcodebuild_formatter: "xcbeautify --report junit",
188-
result_bundle: true,
189-
result_bundle_path: "fastlane/#{result_bundle_path}"
199+
result_bundle_name: "ui_critical_tests_ios_swiftui"
190200
)
191201
end
192202

@@ -212,74 +222,40 @@ platform :ios do
212222
end
213223

214224
lane :ui_tests_ios_swiftui do
215-
# FileUtils resolves relative paths to the `fastlane` directory, while lanes resolve relative to root.
216-
result_bundle_path = "test_results/ui_tests_ios_swiftui.xcresult"
217-
FileUtils.rm_r(result_bundle_path) if File.exist?(result_bundle_path)
218-
run_tests(
219-
workspace: "Sentry.xcworkspace",
225+
run_ui_tests(
220226
scheme: "iOS-SwiftUI",
221-
configuration: configuration,
222-
xcodebuild_formatter: "xcbeautify --report junit",
223-
result_bundle: true,
224-
result_bundle_path: "fastlane/#{result_bundle_path}"
227+
result_bundle_name: "ui_tests_ios_swiftui"
225228
)
226229
end
227230

228231
lane :ui_tests_ios_swift6 do |options|
229-
# FileUtils resolves relative paths to the `fastlane` directory, while lanes resolve relative to root.
230-
result_bundle_path = "test_results/ui_tests_ios_swift6.xcresult"
231-
FileUtils.rm_r(result_bundle_path) if File.exist?(result_bundle_path)
232-
run_tests(
233-
workspace: "Sentry.xcworkspace",
232+
run_ui_tests(
234233
scheme: "iOS-Swift6",
235-
configuration: configuration,
236-
xcodebuild_formatter: "xcbeautify --report junit",
237-
result_bundle: true,
238-
result_bundle_path: "fastlane/#{result_bundle_path}"
234+
result_bundle_name: "ui_tests_ios_swift6",
235+
device: options[:device]
239236
)
240237
end
241238

242239
lane :ui_tests_ios_objc do
243-
# FileUtils resolves relative paths to the `fastlane` directory, while lanes resolve relative to root.
244-
result_bundle_path = "test_results/ui_tests_ios_objc.xcresult"
245-
FileUtils.rm_r(result_bundle_path) if File.exist?(result_bundle_path)
246-
run_tests(
247-
workspace: "Sentry.xcworkspace",
240+
run_ui_tests(
248241
scheme: "iOS-ObjectiveC",
249-
configuration: configuration,
250-
xcodebuild_formatter: "xcbeautify --report junit",
251-
result_bundle: true,
252-
result_bundle_path: "fastlane/#{result_bundle_path}"
242+
result_bundle_name: "ui_tests_ios_objc"
253243
)
254244
end
255245

256246
lane :ui_tests_ios_swift do |options|
257-
# FileUtils resolves relative paths to the `fastlane` directory, while lanes resolve relative to root.
258-
result_bundle_path = "test_results/ui_tests_ios_swift.xcresult"
259-
FileUtils.rm_r(result_bundle_path) if File.exist?(result_bundle_path)
260-
run_tests(
261-
workspace: "Sentry.xcworkspace",
247+
run_ui_tests(
262248
scheme: "iOS-Swift",
249+
result_bundle_name: "ui_tests_ios_swift",
263250
device: options[:device],
264-
address_sanitizer: options[:address_sanitizer],
265-
configuration: configuration,
266-
xcodebuild_formatter: "xcbeautify --report junit",
267-
result_bundle: true,
268-
result_bundle_path: "fastlane/#{result_bundle_path}"
251+
address_sanitizer: options[:address_sanitizer]
269252
)
270253
end
271254

272255
lane :ui_tests_tvos_swift do
273-
# FileUtils resolves relative paths to the `fastlane` directory, while lanes resolve relative to root.
274-
result_bundle_path = "test_results/ui_tests_tvos_swift.xcresult"
275-
FileUtils.rm_r(result_bundle_path) if File.exist?(result_bundle_path)
276-
run_tests(
277-
workspace: "Sentry.xcworkspace",
256+
run_ui_tests(
278257
scheme: "tvOS-Swift",
279-
configuration: configuration,
280-
xcodebuild_formatter: "xcbeautify --report junit",
281-
result_bundle: true,
282-
result_bundle_path: "fastlane/#{result_bundle_path}"
258+
result_bundle_name: "ui_tests_tvos_swift"
283259
)
284260
end
285261

0 commit comments

Comments
 (0)