Code Monkey home page Code Monkey logo

calabash-ios's Introduction

master develop versioning license contributing
Build Status Build Status GitHub version License Contributing

Calabash iOS

After delivering support for the final releases of iOS 11 and Android 8 operating systems, Microsoft will discontinue our contributions to developing Calabash, the open-source mobile app testing tool. We hope that the community will continue to fully adopt and maintain it. As part of our transition on the development of Calabash, we've provided an overview of mobile app UI and end-to-end testing frameworks as a starting point for teams who are looking to re-evaluate their testing strategy. Please see our Mobile App Testing Frameworks Overview document.

Calabash is an automated testing technology for Android and iOS native and hybrid applications.

Calabash is a free-to-use open source project that is looking for a maintainer.

Requirements

  • macOS Mojave or Catalina
  • Xcode 10.3+
  • ruby at least ruby 2.3.x

For the best Ruby experience we recommend that you use a managed Ruby like rbenv or rvm).

Please do not install gems with sudo

For more information about ruby on MacOS, see these Wiki pages:

IMPORTANT

Calabash uses private APIs to inspect your app's view hierarchy. Apps that include the Calabash iOS Server will be rejected if they are submitted to the AppStore. The tutorials below describe a number ways to add Calabash to your Xcode project that will ensure you do not accidently submit a binary that will be reject because it includes Calabash.

Getting Started

If you want to see Calabash iOS in action, head over to the Calabash iOS Smoke Test App and follow the instructions in the README. We use this app to document, demonstrate, and test Calabash iOS. You can use this app to explore Calabash and as an example for how to configure your Xcode project and Calabash workflow.

The examples below assume you are using a managed ruby or are working in the Calabash Sandbox:

$ calabash-sandbox
This terminal is now ready to use with Calabash.
To exit, type 'exit'.

Step 1: Link calabash.framework

To start using Calabash in your project, you need to link an Objective-C framework (calabash.framework) to your application. These instructions are compatible with apps that are written in Swift.

Tutorial Description
Debug Config Use linker flags in the Debug build config to load the calabash.framework
Calabash Config Create a new Calabash Build Configuration
-cal Target Add a new app target to Xcode.

If you want to get started quickly, follow the Debug Config instructions. The Tutorial: How to add Calabash to Xcode wiki page discusses the merits of each approach and has instructions for using CocoaPods.

Step 2: Run Cucumber against an iOS Simulator

The Calabash iOS Example README has simple instructions for how to link the calabash.framwork, generate a features directory, run cucumber, and and open a Calabash console.

# In the directory where your .xcodeproj and Gemfile are
$ bundle exec calabash-ios gen

Build and run in Xcode, targeting an iOS Simulator. Calabash will try to detect the .app you just built.

$ bundle exec cucumber

If Calabash cannot find the .app you just built, it will raise an error. If this happens, you will to tell Calabash where it can find your .app.

By default, Xcode builds to a DerivedData directory:

~/Library/Developer/Xcode/DerivedData/<UDID>/Build/Products/Debug-iphonesimulator/<NAME>.app

Try to locate the .app and set the APP variable:

$ export APP="~/Library/Developer/Xcode/DerivedData/<UDID>/Build/Products/Debug-iphonesimulator/<NAME>.app"
$ bundle exec cucumber

We recommend using scripts and/or changing the location where Xcode stages build products. The sample projects use scripts to stage binaries to a ./Products, even when building from Xcode. You can use the Xcode > Preferences > Locations settings to do the same.

Where to go from here?

Topic Description
Getting Started A more in-depth tutorial using the LPSimpleExample.
Testing on Physical Devices Everything you need to know about testing on physical devices.
API Docs The Calabash iOS ruby API
iOS Smoke Test App Demonstrates advanced features, setups, and workflows
iOS WebView Test App Demonstrates how to interact with UIWebView and WKWebView
Getting Help The Calabash iOS Wiki

Links

License

Copyright (c) LessPainful APS. All rights reserved.
The use and distribution terms for this software are covered by the
Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
which can be found in the file epl-v10.html at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license. You must not remove this notice, or any other,
from this software.

calabash-ios's People

Contributors

alexdenisov avatar alexwellshs avatar ark-konopacki avatar ashisht99xx avatar atultomards avatar crouchygt avatar driis avatar fabb avatar hydhknn avatar igorfedotenkov avatar ilyabausovakvelon avatar jescriba avatar jmoody avatar joesss avatar krukow avatar liohau avatar lucatorella avatar makdad avatar michaelkirk avatar mikenicholls avatar moredip avatar mortengregersen avatar mt-rpranata avatar navaneeth avatar nicorichard avatar polyakrecords avatar svdo avatar svevang avatar teresap avatar zofrex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

calabash-ios's Issues

Auto start app on device

Testing on physical iDevices states:

Calabash cannot automatically start your app on device yet.

When will it? The automation tech seems to be closed on lesspainful.com. Is something like fruitstrap a viable alternative?

As mentioned on frank-discuss

the ideal situation for something like LessPainful would be similar
to Selenium and SauceLabs - an open source product where a company can build
a business offering cloud-based services on top while also contributing to
the base open source project.

Keeping the physical device automation closed to sell device cloud subscriptions is not so great from an iOS developer's point of view. I think the SauceLabs model, which has no such restrictions, is better.

For example they opened sourced iOS support which gives customers confidence in purchasing their subscription because there's no lock in.

Support for Xcode's workspaces

When running calabash-ios setup the setup opens Xcode's *.xcodeproj project file. Since more and more devs using CocoaPods these days, they're also using *.xcworkspace. So when the setup program instructs to verify that the -cal target is building, it will fail since the linker is unable to link the static pods library. You'll see a -lPods error message.

So I purpose to look for a *.xcworkspace file and if it exists open it by the end of the setup procedure.

Given Steps, Setting up the state of the world, and creating data

Great looking project.

I'm curious about the "Given" steps that are common to cucumber? I don't see any examples in the docs.

Are there ways to interact with the application. I would like to have a step to clear all data and create some core data objects.

Would this require interacting with the UI in some way?

This is a feature that I like in KIF, since it runs in the app directly using objective-c, you can interact directly with the data layer.

Assertions

Hi Guys,

Great product, amazing work, well done.

I was wondering whether you could tell me whether there is any "assertion" syntax for the following:

Then I should see the text "hello world" in input field "textfield1"

Currently I have only managed to get working syntax for:

Then I should see the text "hello world"

The problem is that I would like to validate the text of a specific object, but at the moment the working example only validates text on the screen in general.

Regards

PJ

'gem install calabash-cucumber' does not install all the required gems

maybe i have done something wrong, but the calabash-cucumber gem does not install the required gems - in particular cucumber is not installed.

i had calabash-cucumber installed (and running) on ruby 1.9.3p125 and i updated to p194

rvm 1.14.1
MacOS 10.7.4
ruby 1.9.3p194

$ gem install calabash-cucumber
Successfully installed calabash-cucumber-0.9.74
1 gem installed
Installing ri documentation for calabash-cucumber-0.9.74...
Installing RDoc documentation for calabash-cucumber-0.9.74...

Warnings about "Given/When/Then"

WARNING: Using 'Given/When/Then' in step definitions is deprecated, use 'step' to call other steps instead:/usr/local/rvm/gems/ree-1.8.7-2012.02@gemset/gems/calabash-cucumber-0.9.51/lib/calabash-cucumber/calabash_steps.rb:78

This is not a bug, but little annoying :)

RuntimeError when using ~ character in APP_BUNDLE_PATH

launch.rb contains the following as an example of setting APP_BUNDLE_PATH:

#APP_BUNDLE_PATH = "~/Library/Developer/Xcode/DerivedData/??/Build/Products/Calabash-iphonesimulator/??.app""

When using this line with an actual path, it appears that the ~ character at the start is not allowed. Running cucumber results in

  Try setting APP_BUNDLE_PATH in features/support/launch.rb to one of:

   (RuntimeError)
  /Users/me/.rvm/gems/ruby-1.9.2-p180/gems/calabash-cucumber-0.9.49/lib/calabash-cucumber/launch/simulator_helper.rb:108:in `app_bundle_or_raise'
  /Users/me/.rvm/gems/ruby-1.9.2-p180/gems/calabash-cucumber-0.9.49/lib/calabash-cucumber/launch/simulator_helper.rb:17:in `relaunch'

When using \Users instead of ~ everything works OK.

Request: CocoaPods Podspec

I've gotten very use to downloading third party iOS libraries and testing frameworks with CocoaPods. After hearing your endorsement of CocoaPods on iDeveloper/Live podcast I was disappointed not finding it available from that distribution mechanism.

Swipe support incomplete

Swipe playback is relative to the default orientation, not the current orientation. If you rotate the simulator left and then swipe left, you get a vertical swipe. This also affects the "swipe the cell" steps; the swipe is vertical when the simulator is in landscape.

I thought at first to work around this by swiping up when when i wanted to swipe left. Recordings for swiping up and down are not included, although they are implied by the details in the predefined steps document, and expected by the swipe step definitions.

exception on 'calabash-ios setup' command

Hi. I ran into a problem when i ran the 'calabash-ios setup' command. It looks like it is failing trying to create the cal target. Does anyone know how I resolve fix this exception?

Thanks!

Duplicating target: APPNAME to new target: APPNAME-cal
2012-06-22 16:52:18.462 CalabashSetup[98908:f07] -[**NSCFString containsObject:]: unrecognized selector sent to instance 0x1001dc1e0
2012-06-22 16:52:18.464 CalabashSetup[98908:f07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString containsObject:]: unrecognized selector sent to instance 0x1001dc1e0'
* First throw call stack:
(
0 CoreFoundation 0x00007fff8e8fefc6 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff87cbcd5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff8e98b2ae -[NSObject doesNotRecognizeSelector:] + 190
3 CoreFoundation 0x00007fff8e8ebe73 __forwarding
+ 371
4 CoreFoundation 0x00007fff8e8ebc88 _CF_forwarding_prep_0 + 232
5 CalabashSetup 0x0000000100006413 CalabashSetup + 25619
6 CalabashSetup 0x00000001000068ab CalabashSetup + 26795
7 CalabashSetup 0x0000000100006b4c CalabashSetup + 27468
8 CalabashSetup 0x00000001000021ed CalabashSetup + 8685
9 CalabashSetup 0x0000000100002a43 CalabashSetup + 10819
10 CalabashSetup 0x0000000100001da3 CalabashSetup + 7587
11 CalabashSetup 0x0000000100001624 CalabashSetup + 5668
12 ??? 0x0000000000000003 0x0 + 3
)
terminate called throwing an exception

Buttons on UIAlertView won't tap by name when simulator is rotated

I'm having trouble with the "I touch 'x'" steps when using a UIAlertView when the simulator is rotated to landscape. If I have a UIAlertView with two button and trigger a touch of the right-hand button, nothing happens. If I trigger a touch of the left-hand button, the right-hand button is pressed. Touch events work fine on the rest of my app UI.

Unable to auto detect APP_BUNDLE_PATH

I have a exist project now want Calabash support for automation testing.

As the manual steps:

  • calabash-ios setup
  • calabash-ios gen

Then run DEVICE=iphone OS=ios5 cucumber, will get the below issue.

I checked the folder, but project-xxx/Build folder not generated by run with project-cal schema.

Unable to auto detect APP_BUNDLE_PATH.
  Have you built your app for simulator?.
  Searched dir: /Users/lanvige/Library/Developer/Xcode/DerivedData/Ap-aetngbdirwmkvefasukkrhbhwscp/Build/Products
  Please build your app from Xcode
  You should build the -cal target.

  Alternatively, specify APP_BUNDLE_PATH in features/support/launch.rb
  This should point to the location of your built app linked with calabash.
   (RuntimeError)
  /Users/lanvige/.rvm/gems/ruby-1.9.3-p194@rails/gems/calabash-cucumber-0.9.104/lib/calabash-cucumber/launch/simulator_helper.rb:135:in `app_bundle_or_raise'
  /Users/lanvige/repos/apollo/features/support/launch.rb:49:in `relaunch'
  /Users/lanvige/repos/apollo/features/support/launch.rb:69:in `Before'

Log shows as below:

2012-09-19 21:15:35.662 Ap-cal[5455:c07] Creating the server: <LPHTTPServer: 0x69675d0>
2012-09-19 21:15:35.664 Ap-cal[5455:c07] simroot: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk
2012-09-19 21:15:35.666 Ap-cal[5455:c07] Started LPHTTP server on port 37265
2012-09-19 21:15:36.366 Ap-cal[5455:1f03] Bonjour Service Published: domain(local.) type(_http._tcp.) name(Calabash Server)

**Terminating in response to SpringBoard's termination**

but if add no-launch para, the script will be pass.

$ DEVICE=iphone OS=ios5 NO_LAUNCH=1 cucumber

I found the same problem post 5 months ago.
https://groups.google.com/forum/#!topic/calabash-ios/B3OUOYf7lFY


I'm using XCode 4.4.1 & ML & calabash-cucumber 0.9.104 with calabash.framework-0.9.103


I try to create a new project and then run these two commands and the calabash script works fine.


My new project.pbxproj file at here: https://gist.github.com/3749695

Thanks for help.


Update::

I found a folder named Build under DerivedData I can find the project-cal app at below path: ~/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphonesimulator/Ap-cal.app

Then I change the APP_BUNDLE_PATH to point here, the scripts run passed.

So, does I missed somethings?


update 2::

Seems XCode 4.4.1 changed the App Build Path. I create a new project and the .app file is also in same folder, but not the default find path.

Automatic setup should copy previous linker flags as well

Trying out Calabash for the first time on one of our company's more ahem_interesting_cough apps. The automagic setup for Calabash in that project seems to work well, but for one tiny issue;

The target that got copies had its own linker flags already (specifically -ObjC and -fobjc-arc , but the automatic setup replaces these completely with the -force-load and lstdc++ instead of appending them. This broke my app on launch immediately, but adding the original linker flags solved the problem.

Is this intentional? If not, it's an issue to be fixed :)

If a modal view is shown, touchactions should not fire in other views.

I have a modal view coming up as soon as someone wants to delete an element from the items in a table view. I had a "Delete" button in the table-toolbar and in the modal dialog. Only the first found button was triggered. So if a modal view is active, only this modal views elements should be considered relevant.

Support for iFrame in webView

We really need to be able to query and touch elements which are inside an iFrame.

Currently a css or xpath node query returns nil

Custom Step

Hi;

I have a problem with following custom step

Then /^I should see "([^\"]*)" (un)?checked$/ do |label, un|
sel= query("button marked:'#{label}'", :isSelected)[0]

screenshot_and_raise "Expected button cannot be found check name" if sel==nil
if un.nil?
screenshot_and_raise "Expected check button checked" if sel == '0'
else
screenshot_and_raise "Expected check button unchecked" if sel == '1'
end
end

My feature is

...
Then I should see "Snapshot" checked
...

sel is return nil always. label is coming to step right and i checked
query("button marked:'Snapshot'", :isSelected)[0] on terminal query window and it return "1"

I put the custom file under features/step_definitions/
My calabash-ios version is 0.9.100

I stucked here for a while, any help, idea will be much appreciated.

Thanks

Localization and accessibility labels

Hi,

When I write my tests, I use accessibility labels all the time. That's really nice, and one reason I like Calabash so much. But, when I localize my application, I also localize the accessibility labels. What is the recommended way of writing language independent tests, while still retaining the high-level test writing using accessibility labels?

Cheers

Nik

updating to calabash-cucumber-0.9.53 - cannot find calabash framework 0.9.51

I tried updating to 0.9.53 today using:

$ gem update calabash-cucumber; calabash-ios download

and got:

Updating installed gems
Updating calabash-cucumber
Fetching: calabash-cucumber-0.9.53.gem (100%)
Fetching: gherkin-2.10.0.gem (100%)
Building native extensions.  This could take a while...
Successfully installed calabash-cucumber-0.9.53
Successfully installed gherkin-2.10.0
Gems updated: calabash-cucumber, gherkin

----------Info----------
Found calabash.framework in /Users/moody/git/RiseUp/RiseUp.
Shall I delete it and download the latest matching version?
Please answer yes (y) or no (n)
y

----------Info----------
Did not find calabash.framework. I'll download it...'
http://cloud.github.com/downloads/calabash/calabash-ios/calabash.framework-0.9.51.zip
Got bad response code 403.
Aborting...

Can't convert nil into String (TypeError) on calabash-cucumber v0.9.50

calabash-cucumber is no longer working after I upgrade to 0.9.50, with these error when executing cucumber:

can't convert nil into String (TypeError)
~/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/calabash-cucumber-0.9.50/lib/calabash-cucumber/launch/simulator_helper.rb:101:in `expand_path'
~/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/calabash-cucumber-0.9.50/lib/calabash-cucumber/launch/simulator_helper.rb:101:in `app_bundle_or_raise'
$PROJECT_DIR/features/support/launch.rb:49:in `relaunch'
$PROJECT_DIR/features/support/launch.rb:64:in `Before'

Querying the app through irb_ios5.sh works fine.

Unable to use automatic launching of simulator

After updating to version 0.9.40 and using sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer, it still appears automatically launch the Simulator. Performing OS=ios5 cucumber in the project directory (the one containing the .xcproj file), yields the following output:

Midna:NWCalabashApplication brunoscheele$ OS=ios5 cucumber
/Users/brunoscheele/Projects/iOS/NWCalabashApplication/features/support/hooks.rb:1: warning: already initialized constant CALABASH_COUNT
Feature: Keyboard dismisses on 'Done'
    The keyboard should dismiss when the 'Done' button is pressed.

  Scenario: Example steps       # features/keyboardDismissal.feature:5
  can't convert nil into String (TypeError)
  /Users/brunoscheele/.rvm/gems/ruby-1.9.2-p290/gems/calabash-cucumber-0.9.40/lib/calabash-cucumber/launch/simulator_helper.rb:76:in `join'
  /Users/brunoscheele/.rvm/gems/ruby-1.9.2-p290/gems/calabash-cucumber-0.9.40/lib/calabash-cucumber/launch/simulator_helper.rb:76:in `app_bundle_or_raise'
  /Users/brunoscheele/.rvm/gems/ruby-1.9.2-p290/gems/calabash-cucumber-0.9.40/lib/calabash-cucumber/launch/simulator_helper.rb:15:in `relaunch'
  /Users/brunoscheele/Projects/iOS/NWCalabashApplication/features/support/launch.rb:36:in `relaunch'
  /Users/brunoscheele/Projects/iOS/NWCalabashApplication/features/support/launch.rb:48:in `Before'
    Given the app is running    # calabash-cucumber-0.9.40/lib/calabash-cucumber/calabash_steps.rb:4
    Then I touch "First number" # calabash-cucumber-0.9.40/lib/calabash-cucumber/calabash_steps.rb:15
    Then take picture           # calabash-cucumber-0.9.40/lib/calabash-cucumber/calabash_steps.rb:174

Failing Scenarios:
cucumber features/keyboardDismissal.feature:5 # Scenario: Example steps

1 scenario (1 failed)
3 steps (3 skipped)
0m0.003s

Using the NO_LAUNCH=1 option works fine though.

Recording interpolation

When we make a recording, we can apply it to a start-target. But it'd be cool also to be able to set an end target, and interpolate the movement in between.

query throws an error InvalidByteSequenceError when an ellipsis ('...') is present on _any_ view (after updating to 0.9.94)

after updating to 0.9.94, i have a step that has been passing (for months) fail with an error

> Calabash::Cucumber::VERSION
=> "0.9.94"
> query("view {text LIKE '*Support Request*'}")
Encoding::InvalidByteSequenceError: "\xC2" on US-ASCII
    from /Users/moody/.rvm/gems/ruby-1.9.3-p194@calabash/gems/json-1.7.4/lib/json/common.rb:155:in `encode'
    from /Users/moody/.rvm/gems/ruby-1.9.3-p194@calabash/gems/json-1.7.4/lib/json/common.rb:155:in `initialize'
    from /Users/moody/.rvm/gems/ruby-1.9.3-p194@calabash/gems/json-1.7.4/lib/json/common.rb:155:in `new'
    from /Users/moody/.rvm/gems/ruby-1.9.3-p194@calabash/gems/json-1.7.4/lib/json/common.rb:155:in `parse'
    from /Users/moody/.rvm/gems/ruby-1.9.3-p194@calabash/gems/calabash-cucumber-0.9.94/lib/calabash-cucumber/core.rb:298:in `map'
    from /Users/moody/.rvm/gems/ruby-1.9.3-p194@calabash/gems/calabash-cucumber-0.9.94/lib/calabash-cucumber/core.rb:18:in `query'

Additional information:

if the there are no matches, then the error does not occur:

> query("view {text LIKE 'some text that does not exist*'}")
=> []

any thoughts?

getting the css value from a ui web view

I am just wondering , how can i get the css value from the ui web view innorder to make a comparison with another value.
Here i am trying to verify/compare an error messsage.

Then /^i should see "([^"]*)"$/ do |arg1|

.......

end

cannot start port 37265

Hi Karl (I'm guessing) :P

I'm running into other issues. The port doesn't seem to get connected.
For a basic concept I built the sample app and saw the intended message "Started HTTP server on port 37265".
Next I went to through the setup both "calabash-ios setup" and manual, but I could never get the server port working. The Xcode console would never show anything and running "cucumber" would show:
Ping http://localhost:37265/...
Ping http://localhost:37265/...
Ping http://localhost:37265/...
Ping http://localhost:37265/...

<Errno::ECONNREFUSED: Connection refused - connect(2)>

Ping http://localhost:37265/...

<Errno::ECONNREFUSED: Connection refused - connect(2)>

Please let me know if there is any information I can provide.
Many Thanks!

Can not use Scenario outline

When using scenario outlin we are running into an error in hooks.rb:

NoMethodError: undefined method raw_steps' for #<Cucumber::Ast::OutlineTable::ExampleRow:0x1025b0290> ./features/support/hooks.rb:39:inAfterStep'

AfterStep do |scenario|
#Håndtering af den situation hvor Feature/Scenario/steps er mulitline
CALABASH_COUNT[:step_index] = CALABASH_COUNT[:step_index] + 1
raw = scenario.raw_steps[CALABASH_COUNT[:step_index]]
CALABASH_COUNT[:step_line] = raw.line unless raw.nil?
end

Could you please look into this?

Feature request: calabash-ios configuration for default values and directory structure

I was showing my progress with calabash-ios to some of my colleagues and together. One of the issues we encountered was the need for some per-project configuration for calabash-ios.

Some things we would like to use this configuration for:

  • Setting default values for environment variables which we always use (less typing is MOAR AWESOME!).
  • Setting the directory structure for calabash-ios, to avoid cluttering up our trunk. We would like to have a Calabash/ folder in our trunk for example, where calabash-ios searches and puts all its stuff.

A way I would imagine this to work would be to have a variable that can be set in the -cal target that points to the custom Calabash/ directory. That directory would contain a configuration file which handles the rest of the options.

Invisible buttons should fail to be pressed

(Only tested on iOS)

It's quite common to hide UIViews away outside the boundaries of the screen with an animation or so. Queries for these now invisible views, and touches, should not go through.

I suppose this also goes for view with alpha=0.

I suppose this also goes for views with other views on top

Should be able to test this with converting a point or rect from the coordinate system of scrollviews etc by using something like:

(CGRect)convertRect:(CGRect)rect toView:(UIView *)view work

Cheers

Nik

Can't use an UISearchBar as an input field

I'm not able to use an UISearchBar as an input field for:

Then I fill "Search Bar" with "foo"

or

Then I enter "foo" into the "Search Bar" input field

by the way: where can I see the predefined steps? I can't find calabash-cucumber\lib\calabash-cucumber\calabash_steps.rb on my mac, and the content of $PROJECT_DIR/features/step_definitions/calabash_steps.rb is just the following:

require 'calabash-cucumber/calabash_steps'%

"Then I touch search" does not work on iPad

Hello,

When the "Then I touch search" command is executed on an iPad (both Simulator and actual device), it dismisses the keyboard (it touches the bottom right button on the keyboard) instead of touching the "Search" button.

I also tried using 'Then I touch the "search" button' since that it was it is labeled in the Accessibility inspector, but that didn't work.

I was able to record and playback touching the Search button on the keyboard, but since it uses screen coordinates, I would have to do 4 different recordings based on all 4 orientations.

Support for the "Search" button on the keyboard, or hints for doing it on my own would be greatly appreciated. Thanks!

Descriptions concerning 'calabash-ios gen' need clarification

The output of 'calabash-ios setup' states at the end:

After validating, you can generate a features folder:
Go to your project (the dir containing the .xcodeproj file).
Then run calabash-ios gen
(if you don't already have a features folder).

This is not entirely complete, since calabash gen also copies the 'Explore interactively' shell scripts to your project directory, even though this is only stated at one point in the README.md. I was wondering if you changed anything in the setup script, because I couldn't find these files. Turns out they are copied by 'gen' instead.

All images from your README file vanished

I don't know why, but all the linked images of the README file are absent, I think it's really difficult for new users to follow the instructions without the images.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.