xing / calabash-launcher Goto Github PK
View Code? Open in Web Editor NEWiOS Calabash Launcher is a macOS app that helps you run and manage Calabash tests on your Mac.
License: MIT License
iOS Calabash Launcher is a macOS app that helps you run and manage Calabash tests on your Mac.
License: MIT License
Version: master
as of ad903a8
The combination can be confusing, as it is used for other functions in Xcode for example.
When you close the Element Inspector and switch to test runner, the element inspector still tries to perform some tasks in the background. We should restart/pause the process every time when the respective tab is not active.
Latest master as of 278fcf3
Should be stored somewhere the user doesn't have to see it; especially since it's not meant to be edited manually.
The path cannot be changed after: 49c0439
Here is a stack trace:
2017-10-28 09:29:06.792045+0200 Calabash Launcher[810:3166363] [User Defaults] Attempt to set a non-property-list object file:///Users/newmac/calabash-launcher/Scripts/ruby/ as an NSUserDefaults/CFPreferences value for key FilePath
2017-10-28 09:29:06.794384+0200 Calabash Launcher[810:3166363] [General] An uncaught exception was raised
2017-10-28 09:29:06.794872+0200 Calabash Launcher[810:3166363] [General] Attempt to insert non-property list object file:///Users/newmac/calabash-launcher/Scripts/ruby/ for key FilePath
2017-10-28 09:29:06.822816+0200 Calabash Launcher[810:3166363] [General] (
0 CoreFoundation 0x00007fff3ee780fb __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00007fff65764c76 objc_exception_throw + 48
2 CoreFoundation 0x00007fff3ef09bfd +[NSException raise:format:] + 205
3 CoreFoundation 0x00007fff3edb520a _CFPrefsValidateValueForKey + 266
4 CoreFoundation 0x00007fff3ee2b70d -[CFPrefsPlistSource sendMessageSettingValue:forKey:] + 573
5 CoreFoundation 0x00007fff3ef5c86b -[CFPrefsPlistSource alreadylocked_setValues:forKeys:count:from:] + 491
6 CoreFoundation 0x00007fff3eeea73b -[CFPrefsSource setValues:forKeys:count:removeValuesForKeys:count:from:] + 219
7 CoreFoundation 0x00007fff3eeeaa8a -[CFPrefsSource setValues:forKeys:count:from:] + 26
8 CoreFoundation 0x00007fff3ef2c7fe -[CFPrefsSearchListSource alreadylocked_setValues:forKeys:count:from:] + 622
9 CoreFoundation 0x00007fff3eeea73b -[CFPrefsSource setValues:forKeys:count:removeValuesForKeys:count:from:] + 219
10 CoreFoundation 0x00007fff3eeeaa8a -[CFPrefsSource setValues:forKeys:count:from:] + 26
11 CoreFoundation 0x00007fff3eeeaacf -[CFPrefsSource setValue:forKey:from:] + 63
12 CoreFoundation 0x00007fff3ef2e78f __108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke + 287
13 CoreFoundation 0x00007fff3ef2e605 -[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:] + 341
14 CoreFoundation 0x00007fff3ef53c50 -[_CFXPreferences setValue:forKey:appIdentifier:container:configurationURL:] + 96
15 CoreFoundation 0x00007fff3edfec35 _CFPreferencesSetAppValueWithContainer + 117
16 Foundation 0x00007fff40eafc42 -[NSUserDefaults(NSUserDefaults) setObject:forKey:] + 55
17 Calabash Launcher 0x000000010002c7c2 _T0So12UserDefaultsC17Calabash_LauncherE3set33_2913269D7FC7CF948821B9A2DE2683FFLLyypSg_AC23ApplicationStateHandlerC4KeysAELLO6forKeytF + 434
18 Calabash Launcher 0x000000010002cbf7 _T017Calabash_Launcher23ApplicationStateHandlerC8filePath10Foundation3URLVSgfs + 183
19 Calabash Launcher 0x0000000100005eaf _T017Calabash_Launcher22SettingsViewControllerC16clickFileBrowseryypF + 367
20 Calabash Launcher 0x0000000100005f38 _T017Calabash_Launcher22SettingsViewControllerC16clickFileBrowseryypFTo + 72
21 AppKit 0x00007fff3cba59a6 -[NSApplication(NSResponder) sendAction:to:from:] + 312
22 AppKit 0x00007fff3c64c697 -[NSControl sendAction:to:] + 86
23 AppKit 0x00007fff3cd6cb63 -[NSPathCell _otherItemClick:] + 544
24 AppKit 0x00007fff3cba59a6 -[NSApplication(NSResponder) sendAction:to:from:] + 312
25 AppKit 0x00007fff3c63b35f -[NSMenuItem _corePerformAction] + 323
26 AppKit 0x00007fff3c63b0e7 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 114
27 AppKit 0x00007fff3c6c0cba -[NSMenu performActionForItemAtIndex:] + 133
28 AppKit 0x00007fff3c6c0c25 -[NSMenu _internalPerformActionForItemAtIndex:] + 94
29 AppKit 0x00007fff3c6c0a55 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 106
30 AppKit 0x00007fff3c5874c2 NSSLMMenuEventHandler + 882
31 HIToolbox 0x00007fff3e0ea284 _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 1541
32 HIToolbox 0x00007fff3e0e95cd _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 374
33 HIToolbox 0x00007fff3e0fe8d1 SendEventToEventTarget + 39
34 HIToolbox 0x00007fff3e147e09 _ZL18SendHICommandEventjPK9HICommandjjhPKvP20OpaqueEventTargetRefS5_PP14OpaqueEventRef + 411
35 HIToolbox 0x00007fff3e170d3e SendMenuCommandWithContextAndModifiers + 49
36 HIToolbox 0x00007fff3e170cfa SendMenuItemSelectedEvent + 188
37 HIToolbox 0x00007fff3e170bd4 _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 96
38 HIToolbox 0x00007fff3e28921c _ZL19PopUpMenuSelectCoreP8MenuData5PointdS1_tjjPK4RecttjS4_S4_PK14__CFDictionaryPK10__CFStringPP13OpaqueMenuRefPt + 1662
39 HIToolbox 0x00007fff3e288697 _ZL26_HandlePopUpMenuSelection8P13OpaqueMenuRefP14OpaqueEventRefj5PointtjjPK4RecttS6_S6_PK14__CFDictionaryPK10__CFStringPS0_Pt + 409
40 HIToolbox 0x00007fff3e150e3c _HandlePopUpMenuSelectionWithDictionary + 268
41 AppKit 0x00007fff3c6b77ea _NSSLMPopUpCarbonMenu3 + 5632
42 AppKit 0x00007fff3c6b6144 -[NSCarbonMenuImpl popUpMenu:atLocation:width:forView:withSelectedItem:withFont:withFlags:withOptions:] + 439
43 AppKit 0x00007fff3c726258 -[NSPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 570
44 AppKit 0x00007fff3cd6d637 -[NSPathCell trackMouse:inRect:ofView:untilMouseUp:] + 1251
45 AppKit 0x00007fff3c6497c4 -[NSControl mouseDown:] + 965
46 AppKit 0x00007fff3cd7098d -[NSPathControl mouseDown:] + 441
47 AppKit 0x00007fff3cd44ad5 -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 5891
48 AppKit 0x00007fff3cd4172c -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 2359
49 AppKit 0x00007fff3cd409d8 -[NSWindow(NSEventRouting) sendEvent:] + 497
50 AppKit 0x00007fff3cba1863 -[NSApplication(NSEvent) sendEvent:] + 307
51 AppKit 0x00007fff3c403835 -[NSApplication run] + 812
52 AppKit 0x00007fff3c3d29a6 NSApplicationMain + 804
53 Calabash Launcher 0x0000000100050c0d main + 13
54 libdyld.dylib 0x00007fff66353145 start + 1
55 ??? 0x0000000000000003 0x0 + 3
)
Path to the folders doesn't work when clicking on the autosuggestions
The current idea is to use ios-deploy library for that
We can draw inspiration from https://github.com/Moya/contributors/blob/master/Contributing.md.
Making a gif will give the reader an even better understanding of the tool, as we can show how it works and not just how it looks.
Ref #84 (comment)
Refactoring needed for the Ruby code in the project
In most of the cases default Xcode simulator breaks the test run. We should find and export parameters ourselves
The default text shown in the Element Inspector need a rework.
For example the get screen button is not there anymore, also formatting looks strange
Welcome to Element Inspector!
Please make sure that your simulator is running and your App is opened, otherwise you can start it clicking on 'Start Simulator' Button.
In this field you can get all the elements from the opened APP screen. To do so, you will need to press 'Get All Elements' button.
In next window you'll be able to see hierarchy of the selected element. To select the element click on the screenshot of the simulator in 3rd window of this view. To sync screenshot with simulator - press 'Get Screen' button once, it'll automatically update every 7 seconds afterwards.
Choosing the element in the view hierarchy you'll get element address (copy/paste is enabled for this view).
Double-clicking on the view in hierarchy the element will flash in the simulator!
Have fun and reports bugs :)
Currently Launcher is connected to the Xcode version, as the binary is built and placed in the project without rebuild
Sometimes bash commands reject to work in the main thread or in background queue one after another, so we have to use a lot nested queues that looks ugly
Looking at the Calabash Launcher Setup window for the first time, I had several ? in my head.
What to enter for
https://user-images.githubusercontent.com/4619244/32549683-addd49ca-c48a-11e7-90c5-99799a5fcb37.png
Maybe we should add in every field an example and mark them as optional.
What do you think @JoeSSS ?
For example to clear the console
This can work nicely with #2
A good first step is to add a rule to make sure the Changelog is updated for every change in the app. See also #5
First time you launch Calabash launcher you need to setup the path to the tests as well as the cucumber path. However, this window has the name untitled.
Maybe we name the window "Calabash Launcher Setup"
We need something that will decide whether simulator is ready to work or not, rather than retry 70-80 times to get the command done
In which we can lay out the general direction of where we see this project going.
Screenshots should be the same size
Currently we just fail everything if we cannot get simulators from Xcode or we don't have Calabash gem
Ref #41 (review)
https://github.com/JoeSSS/calabash-launcher/blob/master/Launcher/Classes/ViewControllers/TasksViewController.swift#L597-L615 doesn't belong in a ViewController
Pass in the CommandTextOutputStream or a textHandler closure which is assigned to the executor’s output stream instead of the text view.
We will need a release scheme that will contain (Hockey and Auto-Update frameworks. For doing that safe, we will need some kind of bootstrap that will inject the hockey app identifier before the release build
Currently we support only iPhone 6, iPhone 7 and iPhone 8 because of the screen size mapping to the clickable view in inspector. Would be great to make the mapping extendable.
We should document how we should write changelog entries.
We need to teach Calabash Launcher to change languages in the proper way
https://github.com/JoeSSS/calabash-launcher/blob/master/Launcher/Classes/ViewControllers/TasksViewController.swift#L575-L595 doesn't belong in a ViewController
See here.
Seems like it is related to the buttonCell
, as that is wrapping the mutableData
?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.