Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/concretesolutions/sunomono
A simple gem to generate all files needed in a project that will support Cucumber, Calabash Android and Calabash IOS and Appium Android and IOS.
https://github.com/concretesolutions/sunomono
calabash cucumber quality-assurance ruby test-automation testing-tools
Last synced: about 2 months ago
JSON representation
A simple gem to generate all files needed in a project that will support Cucumber, Calabash Android and Calabash IOS and Appium Android and IOS.
- Host: GitHub
- URL: https://github.com/concretesolutions/sunomono
- Owner: concretesolutions
- License: mit
- Created: 2014-10-23T19:27:40.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2018-10-09T19:59:02.000Z (about 6 years ago)
- Last Synced: 2024-03-15T13:21:34.933Z (10 months ago)
- Topics: calabash, cucumber, quality-assurance, ruby, test-automation, testing-tools
- Language: Ruby
- Homepage: https://github.com/concretesolutions/sunomono
- Size: 229 KB
- Stars: 32
- Watchers: 20
- Forks: 21
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: change_log.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Sunomono
[![Gem Version](https://badge.fury.io/rb/sunomono.svg)](https://badge.fury.io/rb/sunomono) [![CircleCI](https://circleci.com/gh/concretesolutions/sunomono/tree/master.svg?style=svg)](https://circleci.com/gh/concretesolutions/sunomono/tree/master)
> ***The new version of [cs-bdd](https://rubygems.org/gems/cs-bdd) gem. cs-bdd was deprecated and will be yanked in the future. Always refer to sunomono from now on.***
A simple gem to generate all files needed in a project that will support calabash and appium for both Android and iOS.
iOS Build script works only with iOS SDK 9.2 or newer
Sunomono(calabash) documentation : [(link)](https://github.com/concretesolutions/sunomono/SUNOMONO_CALABASH.md)
Sunomono(appium) documentation : [(link)](https://github.com/concretesolutions/sunomono/SUNOMONO_APPPIUM.md)
## Installation
Install it as:
$ gem install sunomono
## Usage
In the terminal, type for help:
```
suno
```Or
```
sunomono
```To see the gem version type:
```
suno version
```To generate a project that support both Android and iOS features type:
```
suno new calabash ProjectName
```or
```
suno new appium Project Name
```This command will create a folder named ProjectName in the current directory and will create all the needed files. This gem support localizations. To create a localized project, in Portuguese, type:
```
suno new Framework(calabash or appium) ProjectName --lang=pt
```If you use Windows, to avoid encoding problems, run the following command in cmd:
```
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] "AutoRun"="chcp 65001"
```> The default language is English ('en'). The elements of Gherkin such as Given, When, Then, And, Scenario will be translated to all Gherkin supported languages, but this gem has just a few translation files (see that in folder: `lib/sunomono/locales`).
> **Sunomono doesn't support your mother language?** No problem. Fork it, create your yml translation file, uses the en.yml file as a template. Translate it and make a pull request. There are only 15 lines to be translated, this will take no time.
> **Want to know how to name your translation yml file?** See the Gherkin supported languages [here](https://github.com/cucumber/gherkin/blob/master/lib/gherkin/i18n.json) for reference.
Once the project is created, open its folder (`cd ProjectName`) and run `bundle install`
> Remember to fix the calabash-cucumber version on the Gemfile. When updating the calabash-cucumber gem version you need to update the Calabash framework that was embedded on your iOS code. So, my suggestion is to update it manually. [In this page](https://github.com/calabash/calabash-ios/wiki/B1-Updating-your-Calabash-iOS-version) you can find more information on how to update the Calabash framework.
There are nine generators that are responsible to create the templates for Features, Step definitions and Screens.
**The generators commands ONLY WORK in the ROOT FOLDER of the project**.
####Features
To create calabash based files:
```
suno generate calabash-feature FeatureName
```To create appium based files:
```
suno generate appium-feature FeatureName
```The feature generator will create a Platform independent feature and its files.
So this command will create the FeatureName.feature file inside the folder `feature`, the file FeatureName_steps.rb inside the folder `features/step_definitions`, the files FeatureName_screen.rb inside the folders `features/android/screens` and `features/ios/screens`.#### Independent Feature by platform
To create calabash based files:
```
suno generate android-feature calabash AndroidFeatureName
suno generate ios-feature calabash iOSFeatureName
```To create appium based files:
```
suno generate android-feature appium AndroidFeatureName
suno generate ios-feature appium iOSFeatureName```
The aFeature and iFeature generator create a dependent feature for each platform. For example, aFeature generates the AndroidFeatureName.feature file inside the folder features/android/features, the file AndroidFeatureName_steps.rb inside the folder features/androd/step_definitions and the screen file AndroidFeatureName_screen.rb inside the folder features/android/screens.
Don't forget about internationalization. All the generators accept the option `--lang=pt` or with some other language.
####Steps
```
suno generate step StepName
```Another command creates an independent step file named StepName_steps.rb inside the folder features/step_definitions for each platform
```
suno generate android-step AndroidStepName
```For Android, it creates a step file named AndroidStepName_steps.rb inside features/android/step_definitions
```
suno generate ios-step iOSStepName
```
The iStep generator will create an iOS step file name iOSStepName_steps.rb in the folder `features/ios/step_definitions`####Screens
```
suno generate screen ScreenName
```
The screen generator will create both Platform dependent screens in the folders `features/android/screens` and `features/ios/screens`.To create calabash based files:
```
suno generate android-screen calabash AndroidScreenName
suno generate ios-screen calabash iOSScreenName
```To create appium based files:
```
suno generate android-screen appium AndroidScreenName
suno generate ios-screen appium iOSScreenName
```The android-screen and ios-screen will create only the Android and iOS dependent screens respectively.
## Load Classes
**It works only calabash project**
### UsageThe load classes has been living in:
```
features/config/load_classes.rb
```load_classes.rb provides a easy way to test your methods under development
Use the calabash-android console mode
````
bundle exec calabash-android console -p android feature/
````or
````
bundle exec calabash-ios console -p ios feature/
````To load all .rb classes, run the following command on terminal
````
load 'config/load_classes.rb'
````Now you got all .rb files loaded
Next step is to create a new instance of the class to test your methods```
@foo = page(fooScreen)
```To use the methods, just call the method and enjoy
```
@foo.fill_data
```## Continuous Integration (CI)
The project contains a lot of scripts that will help you to configure you CI server.
> Documentation under development.