README.md in xcfit-2.0.6 vs README.md in xcfit-2.0.7

- old
+ new

@@ -3,13 +3,13 @@ [![License](https://img.shields.io/cocoapods/l/XCFit.svg?style=flat)](http://cocoapods.org/pods/XCFit) [![Platform](https://img.shields.io/cocoapods/p/XCFit.svg?style=flat)](http://cocoapods.org/pods/XCFit) # XCFit : Full Stack BDD in Xcode -**XCFit a.k.a ([XCUI](https://developer.apple.com/videos/play/wwdc2015/406/0), [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish) and [Fitnesse](https://github.com/paulstringer/OCSlimProject) Integrations Tests) is a full stack Xcode BDD framework for [Swift](https://swift.org) iOS and macOS apps. XCFit allows us to write API level, UI and Acceptance Tests with Swift in human readable language using tools like [Cucumber](https://cucumber.io/) and [Fitnesse](http://fitnesse.org/) in Xcode. We can still use Apple's brand new UI Testing framework (XCUI) under the hood of Cucumberish. XCFit is fully automated solution for Cucumberish and Fitnesse. You can use 80(Fitnesse):20(Cucumberish) formula to automate Acceptance and UI Testing for better coverage and faster feedback. XCFit is available on [RubyGem](https://rubygems.org/gems/xcfit), [CocoaPods](http://cocoadocs.org/docsets/XCFit) and Swift Package Manager.** +**XCFit a.k.a ([XCUI](https://developer.apple.com/videos/play/wwdc2015/406/0), [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish) and [Fitnesse](https://github.com/paulstringer/OCSlimProject) Integrations Tests) is a full stack Xcode BDD framework for [Swift](https://swift.org) iOS and macOS apps. XCFit allows us to write API level, UI and Acceptance Tests with Swift in human readable language using tools like [Cucumber](https://cucumber.io/) and [Fitnesse](http://fitnesse.org/) in Xcode. We can still use Apple's brand new UI Testing framework (XCUI) under the hood of Cucumberish. XCFit is fully automated solution for Cucumberish and Fitnesse. You can use 80(Fitnesse):20(Cucumberish) formula to automate Acceptance and UI Testing for better coverage and faster feedback. XCFit is available on [Homebrew](http://brew.sh), [RubyGem](https://rubygems.org/gems/xcfit), [CocoaPods](http://cocoadocs.org/docsets/XCFit) and Swift Package Manager.** -### XCFit 2.0 has just released ! +### XCFit 2.0 has just released ! ![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/XCFit2Release.png) * [XCFit : Full Stack BDD in Xcode](#xcfit--full-stack-bdd-in-xcode) * [XCFit Features](#xcfit-features) @@ -50,14 +50,17 @@ ### XCFit Available on * **CocoaPods** -- [XCFit-CocoaPods](http://cocoadocs.org/docsets/XCFit) : BDD Style scenarios for iOS App +* **Homebrew** - Just do `brew tap shashikant86/homebrew-taps` and `brew install xcfit` + * **RubyGems** -- [xcfit-RubyGem](https://rubygems.org/gems/xcfit) : Automated Xcode Templates * **Swift Package Manager** : 2.0.0 : XCUI Test Framework Helpers + # Tech & Software Requirements XCFit uses a number of open source projects to work properly. You need to have following **Hardware** @@ -72,10 +75,11 @@ - Ideally Xcode 8 but works on Xcode 7 as well. * **[RubyGems](https://rubygems.org/)** - RubyGem with [Cocoapods](https://cocoapods.org/) installed * **[Curl on Mac](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/curl.1.html)** - Might be pre-installed but worth double checking. +* **[Homebrew](http://brew.sh)** * **[iOS-Sim](https://www.npmjs.com/package/ios-sim)** - Node Package required to launch iOS app for Fitnesse Acceptance tests. * [**Java**](https://www.java.com/en/) - Java should be installed on Mac, it is required for Fitnesse Acceptance Test * **Ruby Packages(optional)** @@ -83,27 +87,49 @@ --- # Installation +XCFit can be installed using [Homebrew](http://brew.sh) or using [RubyGems](https://rubygems.org/) but it's strongly recommended to install it using Homebrew. + +## Install with HomeBrew + +Assuming you have already installed [Homebrew](http://brew.sh). Let's tap the formula + + brew tap shashikant86/homebrew-taps +Now, we can install XCFit brew package using + + brew install xcfit + + +This is recommended method to install `XCFit` over the Rubygem mentioned below. + ## Install XCFit Gem -In order to get started, We need to install XCFit from [RubyGems](https://rubygems.org/). This will set our Xcode for BDD +If you can't use HomeBrew for some reason then XCFit can be installed using [RubyGems](https://rubygems.org/). This will set our Xcode for BDD $ gem install xcfit You need to use with 'sudo' if you are using system (pre-installed) Ruby(2.0). XCFit gem will be used to set all the Xcode Templated for Xcode 8 as well Xcode 7 -Now that you can execute 'xcfit' command from your terminal/iTerm etc etc. Example Output Looks like this : +# XCFit Commands +Once you installed XCFit with HomeBrew/Rubygem then you can execute 'xcfit' command from your terminal/iTerm etc etc. Example Output Looks like this : + ``` $xcfit -Tasks: - xcfit get_cucumberish VERSION - xcfit get_fitnesse - xcfit help [TASK] - xcfit set_xcode7_templates - xcfit set_xcode_templates +setup_xcode_templates: + generate a Xcode 8 Templates for the Cucumberish and Fitnesse + setup_xcode7_templates: + generate a Xcode 7.x Templates. Please upgrade to Xcode 8 + setup_gherkin: + generate Xcode Templates for the Gherkin Feature Files + get_cucumberish: + Downloads Cucumberish version + version: + prints the XCFit version + help: + prints more detailed help information. ``` ## Install XCFit Cocoapod and Swift Package (Covered later) @@ -121,20 +147,11 @@ ```sh $ xcfit set_xcode_templates ``` -##### Xcode 7 -To setup Templates for Xcode 7.x. - - -```sh -$ xcfit set_xcode7_templates - -``` - - This will add couple of templates to your Xcode for iOS and macOS apps. In your app if you go to 'File--->New--->Target' You will see new option for iOS i.e 'XCFit'. Once Clicked on it. You will see Cucumberish UI and Fitnesse Acceptance Tests. XCUI POM, Fitnesse Acceptance Unit Test bundles. As shown ![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/Xcode8-Templates.png) @@ -201,17 +218,17 @@ Here is how to do it. ![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/AddFeaturesDirectory.gif) * **Cucumberish Header Files** -We still don't have content of [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish/tree/master/Cucumberish) to be included in our project. +We still don't have content of [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish/tree/master/Cucumberish) to be included in our project. -### Getting Cucumberish into our Target +### Getting Cucumberish into our Target -In order to get [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish/tree/master/Cucumberish) source content. There are few ways we can do that +In order to get [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish/tree/master/Cucumberish) source content. There are few ways we can do that -- ***Adding XCFit CocoaPod to Project*** +- **Cocoapods** Create a 'Podfile' if you don't have already. In your Podfile, add following Pod entry and update/install pod ```ruby target '$_YOUR_CUCUMBERISH_TARGET' do @@ -228,33 +245,38 @@ You can do that easily. ![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/AddPod.gif) Now close the existing Xcode session and Xcode Workspace next time. -> **Note** There is issue with Cocoapods when you have ``'use_frameworks!'``, it will not import header files and build will fail. If you are not using Frameworks in th Podfile then this approach is OK. +> **Note** There is issue with Cocoapods when you have ``'use_frameworks!'``, it will not import header files and build will fail. If you are not using Frameworks in th Podfile then this approach is OK. -- ***Manually Copy Content of Cucumberish and Drag to Xcode - Prefered Way*** +- **Manual Installtion** -We can manually copy content of [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish/tree/master/Cucumberish) directory and drag to target as with option "**Create groups" and "Copy items if needed**". +We can manually copy content of [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish/tree/master/Cucumberish) directory and drag to target as with option "**Create groups" and "Copy items if needed**". -Here is How to setup everything in a minute +Here is How to setup everything in a minute ![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/XCFitStartUp.gif) -- ***Use Carthage without build and drag the folder to target*** +- **Carthage** -Create a `Cartfile ` with following Content +Create a `Cartfile ` with following Content ``` github "Ahmed-Ali/Cucumberish" ``` -Now run Carthage wihtout build option. - - $ carthage update --platform iOS --no-build - -Now in the `Carthage/Checkout` directory has Cucumberish. Just add that to target or workspace. +Now run Carthage wihtout build option. -Please choose one of the suitable option for you. + $ carthage update --platform iOS --no-build + +Now in the `Carthage/Checkout` directory has `Cucumberish/Cucumberish`. drag to target as with option "**Create groups" and "Copy items if needed**". + +Here is how to do that ! + +![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/Carthage.gif) + + +Please choose one of the suitable option for you. We now have everything we needed to run demo Cucumber demo test. Update Scheme if don't want to run unit test or other type of tests. and press 'CMD+U' ![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/CucumberTest.gif)