xcfit 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +11 -6
- data/Dangerfile +11 -0
- data/README.md +186 -33
- data/XCFitDemo/.travis.yml +20 -0
- data/XCFitDemo/Dangerfile +13 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/AddNumbers/content.txt +3 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/AddNumbers/properties.xml +13 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEat/content.txt +3 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEat/properties.xml +13 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEatThree/content.txt +3 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/{ShoudIBuyMilk → XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEatThree}/properties.xml +2 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEatTwo/content.txt +3 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEatTwo/properties.xml +14 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/content.txt +2 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/{Suite → XCFitDemoFitnesse/XCFitDemoFitnesseSuite}/properties.xml +0 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/content.txt +1 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/properties.xml +13 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/content.txt +4 -0
- data/XCFitDemo/FitNesseRoot/FrontPage/properties.xml +1 -1
- data/XCFitDemo/FitNesseRoot/RecentChanges/content.txt +7 -4
- data/XCFitDemo/FitNesseRoot/files/testResults/{FrontPage/20160716220147_1_0_0_0.xml → FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730202917_0_0_1_0.xml} +22 -22
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730202956_0_0_0_1.xml +156 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203436_0_0_0_1.xml +108 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203512_0_0_0_1.xml +108 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203620_0_1_0_0.xml +111 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203713_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203755_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203829_0_1_0_0.xml +111 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203928_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730204257_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/{FrontPage.BuyMilk/20160716104003_0_0_0_0.xml → FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730204655_0_0_0_0.xml} +11 -11
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730204720_0_0_0_1.xml +108 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730204807_0_0_0_1.xml +49 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730204924_0_0_0_1.xml +51 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730205820_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211016_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211125_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211239_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211334_0_1_0_0.xml +111 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211438_0_1_0_0.xml +111 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/{FrontPage/20160715235803_0_0_1_0.xml → FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211527_0_0_0_1.xml} +24 -22
- data/XCFitDemo/FitNesseRoot/files/testResults/{FrontPage/20160715235936_0_0_1_0.xml → FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211753_0_0_0_1.xml} +22 -23
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211908_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212014_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212120_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212155_0_0_0_1.xml +108 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212224_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212548_0_0_0_1.xml +48 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212623_0_1_0_0.xml +111 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212653_1_0_0_0.xml +110 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730213113_1_0_0_0.xml +86 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730213226_1_0_0_0.xml +86 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730201717_0_0_0_0.xml +33 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730201819_0_0_0_0.xml +33 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730201907_0_0_0_1.xml +144 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202104_0_0_0_1.xml +96 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202226_0_0_0_1.xml +96 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202311_0_0_0_1.xml +96 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202342_0_0_0_1.xml +96 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202427_0_1_0_0.xml +99 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202459_1_0_0_0.xml +98 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202723_1_0_0_0.xml +74 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730213114_1_0_0_0.xml +74 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730213226_1_0_0_0.xml +74 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatThree/20160730202723_1_0_0_0.xml +74 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatThree/20160730213114_1_0_0_0.xml +74 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatThree/20160730213226_1_0_0_0.xml +74 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatTwo/20160730202648_1_0_0_0.xml +98 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatTwo/20160730202723_1_0_0_0.xml +74 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatTwo/20160730213114_1_0_0_0.xml +74 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatTwo/20160730213226_1_0_0_0.xml +74 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite/20160730202723_3_0_0_0.xml +73 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite/20160730213113_4_0_0_0.xml +85 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite/20160730213225_4_0_0_0.xml +85 -0
- data/XCFitDemo/FitNesseRoot/properties +1 -1
- data/XCFitDemo/Gemfile +7 -0
- data/XCFitDemo/Gemfile.lock +310 -0
- data/XCFitDemo/LaunchFitnesse +1 -0
- data/XCFitDemo/Pods/Headers/Private/OCSlimProject/OCSlimProject.h +1 -0
- data/XCFitDemo/Pods/Headers/Public/OCSlimProject/OCSlimProject.h +1 -0
- data/XCFitDemo/Scanfile +3 -0
- data/XCFitDemo/XCFitAcceptanceTests/AddNumbers.swift +38 -0
- data/XCFitDemo/XCFitAcceptanceTests/ShouldIEat.swift +34 -0
- data/XCFitDemo/XCFitDemo.xcodeproj/project.pbxproj +8 -0
- data/XCFitDemo/XCFitDemo.xcodeproj/xcshareddata/xcschemes/XCFitAcceptanceTests.xcscheme +91 -0
- data/XCFitDemo/XCFitDemo.xcodeproj/xcshareddata/xcschemes/XCFitDemo.xcscheme +101 -0
- data/XCFitDemo/fastlane/Appfile +7 -0
- data/XCFitDemo/fastlane/Fastfile +65 -0
- data/XCFitDemo/fastlane/README.md +36 -0
- data/XCFitDemo/fastlane/report.xml +16 -0
- data/XCFitDemo/fastlane/test_output/report.html +171 -0
- data/XCFit_Templates/XCFit/Base Acceptance Testing Bundle.xctemplate/TemplateIcon.icns +0 -0
- data/XCFit_Templates/XCFit/Base Acceptance Testing Bundle.xctemplate/TemplateInfo.plist +134 -0
- data/XCFit_Templates/XCFit/Base Acceptance Testing Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___.m +17 -0
- data/XCFit_Templates/XCFit/Base Acceptance Testing Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___.swift +13 -0
- data/XCFit_Templates/XCFit/Base Acceptance Testing Bundle.xctemplate/___POD_NAME___.m +25 -0
- data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/AcceptanceTests-Bridging-Header.h b/data/XCFit_Templates/XCFit/Base Acceptance → Tests.xctemplate/AcceptanceTests-Bridging-Header.h +0 -0
- data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/FixtureExample.swift +12 -8
- data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/SlimTables.h b/data/XCFit_Templates/XCFit/Base Acceptance → Tests.xctemplate/SlimTables.h +0 -0
- data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/TemplateInfo.plist +55 -50
- data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/___PACKAGENAMEASIDENTIFIER___-Bridging-Header.h +11 -0
- data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/___PACKAGENAMEASIDENTIFIER___.m +21 -3
- data/XCFit_Templates/XCFit/Mac Acceptance Testing Bundle.xctemplate/TemplateIcon.icns +0 -0
- data/XCFit_Templates/XCFit/Mac Acceptance Testing Bundle.xctemplate/TemplateInfo.plist +40 -0
- data/XCFit_Templates/XCFit/Mac Acceptance Tests.xctemplate/Empty.xib b/data/XCFit_Templates/XCFit/Mac Acceptance → Tests.xctemplate/Empty.xib +0 -0
- data/XCFit_Templates/XCFit/Mac Acceptance Tests.xctemplate/TemplateIcon.icns +0 -0
- data/XCFit_Templates/XCFit/Mac Acceptance Tests.xctemplate/TemplateInfo.plist +8 -1
- data/XCFit_Templates/XCFit/iOS Acceptance Testing Bundle.xctemplate/TemplateIcon.icns +0 -0
- data/XCFit_Templates/XCFit/iOS Acceptance Testing Bundle.xctemplate/TemplateInfo.plist +40 -0
- data/XCFit_Templates/XCFit/iOS Acceptance Tests.xctemplate/TemplateIcon.icns +0 -0
- data/XCFit_Templates/XCFit/iOS Acceptance Tests.xctemplate/TemplateInfo.plist +7 -0
- data/lib/XCFit/version.rb +1 -1
- metadata +95 -47
- data/XCFitDemo/FitNesseRoot/FrontPage/BuyMilk/content.txt +0 -6
- data/XCFitDemo/FitNesseRoot/FrontPage/BuyMilk/properties.xml +0 -12
- data/XCFitDemo/FitNesseRoot/FrontPage/ShoudIBuyMilk/content.txt +0 -6
- data/XCFitDemo/FitNesseRoot/FrontPage/Suite/content.txt +0 -1
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160715235959_0_0_0_1.xml +0 -606
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160716102541_0_0_0_1.xml +0 -606
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160716102614_0_0_0_1.xml +0 -418
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160716102806_0_0_0_1.xml +0 -418
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160716103627_0_0_0_1.xml +0 -418
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160716103912_0_1_0_0.xml +0 -438
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160715235959_0_0_0_1.xml +0 -606
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716102541_0_0_0_1.xml +0 -606
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716102614_0_0_0_1.xml +0 -418
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716102807_0_0_0_1.xml +0 -418
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716103627_0_0_0_1.xml +0 -418
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716103912_0_1_0_0.xml +0 -438
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716104103_0_1_0_0.xml +0 -438
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716104135_1_0_0_0.xml +0 -266
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716220147_1_0_0_0.xml +0 -242
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160715235959_0_0_0_2.xml +0 -61
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716102541_0_0_0_2.xml +0 -61
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716102614_0_0_0_2.xml +0 -61
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716102806_0_0_0_2.xml +0 -61
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716103627_0_0_0_2.xml +0 -61
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716103912_0_2_0_0.xml +0 -61
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716104103_0_1_0_0.xml +0 -49
- data/XCFitDemo/LaunchFitnesse +0 -156
- data/XCFitDemo/Pods/Headers/Private/OCSlimProject/OCSlimProject.h +0 -3
- data/XCFitDemo/Pods/Headers/Public/OCSlimProject/OCSlimProject.h +0 -3
- data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/TemplateIcon.png +0 -0
- data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/TemplateIcon@2x.png +0 -0
- data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/TemplateIcon.png +0 -0
- data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/TemplateIcon@2x.png +0 -0
- data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/TemplateInfo.plist +0 -117
- data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___-Bridging-Header.h +0 -7
- data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.h +0 -14
- data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.m +0 -17
- data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.swift +0 -23
- data/XCFit_Templates/XCFit/MacOS API Cucumberish Testing Bundle.xctemplate/TemplateInfo.plist +0 -39
- data/XCFit_Templates/XCFit/iOS API Cucumberish Testing Bundle.xctemplate/TemplateInfo.plist +0 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0f7f8725d28712acee9f6958cc1614ccecd887c
|
4
|
+
data.tar.gz: 6e222f03ee57c9f98281a8b2842b332ddac0a3dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 760a8546ee0e8c3d0cb73c4524ebdf408a371e92d321f07a368ad873e8ff46f2c12010b18934df3b727078a6eb8f019ff94eea95d785a9bb5fc1d12179bc8bf0
|
7
|
+
data.tar.gz: 9956a797e7f8c38041f0985e97ba3c9a662ae785e11c31a128c36bad9f78db27beb4a755f880c614e59aeb6b26fac2f992fb954b181ac652d525b0373a485720
|
data/.travis.yml
CHANGED
@@ -5,10 +5,15 @@
|
|
5
5
|
osx_image: xcode7.3
|
6
6
|
language: objective-c
|
7
7
|
# cache: cocoapods
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
podfile: XCFitDemo/Podfile
|
9
|
+
before_install:
|
10
|
+
- gem install danger
|
11
|
+
- danger
|
12
|
+
# - pod install --project-directory=XCFitDemo
|
12
13
|
script:
|
13
|
-
|
14
|
-
-
|
14
|
+
- cd XCFitDemo/
|
15
|
+
- pwd
|
16
|
+
- set -o pipefail && xcodebuild -list
|
17
|
+
- echo "==========Now Running Cucumberish Tests==================="
|
18
|
+
- set -o pipefail && xcodebuild -project XCFitDemo.xcodeproj -scheme XCFitDemo -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3' clean build test | xcpretty -s -r html -r junit --color
|
19
|
+
|
data/Dangerfile
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# Sometimes it's a README fix, or something like that - which isn't relevant for
|
2
|
+
# including in a project's CHANGELOG for example
|
3
|
+
declared_trivial = github.pr_title.include? "#trivial"
|
4
|
+
|
5
|
+
# Make it more obvious that a PR is a work in progress and shouldn't be merged yet
|
6
|
+
warn("PR is classed as Work in Progress") if github.pr_title.include? "[WIP]"
|
7
|
+
|
8
|
+
# Warn when there is a big PR
|
9
|
+
warn("Big PR") if git.lines_of_code > 500
|
10
|
+
|
11
|
+
|
data/README.md
CHANGED
@@ -3,26 +3,71 @@
|
|
3
3
|
[![License](https://img.shields.io/cocoapods/l/XCFit.svg?style=flat)](http://cocoapods.org/pods/XCFit)
|
4
4
|
[![Platform](https://img.shields.io/cocoapods/p/XCFit.svg?style=flat)](http://cocoapods.org/pods/XCFit)
|
5
5
|
|
6
|
-
#
|
6
|
+
#XCFit
|
7
|
+
## XCFit - 'Swift' Your iOS/macOS apps towards BDD
|
8
|
+
|
9
|
+
####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, 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) and [CocoaPods](http://cocoadocs.org/docsets/XCFit).
|
7
10
|
|
8
|
-
####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, UI and Acceptance Tests in human readable language using tools like [Cucumber](https://cucumber.io/) and [Fitnesse](http://fitnesse.org/) in Xcode. XCFit is fully automated solution for Cucumberish and Fitness. XCFit is available on [RubyGem](https://rubygems.org/gems/xcfit) and [CocoaPods](http://cocoadocs.org/docsets/XCFit).
|
9
11
|
|
10
12
|
### XCFit Features
|
11
13
|
There are few reason you should go for XCFit
|
12
14
|
***
|
13
15
|
- You can now write Given When Then and Decision Table in Xcode !! YAY.. Thanks to Cucumberish and OCSlimProject ! And XCFit automated them !!
|
16
|
+
- You can now write/Execute all your Acdeptance Tests and UI Tests using Apple's brand new programming language "Swift" in Xcode. Goodbye Appium, Calabash, Frank, KIF and Goodbye Ruby,Java, Python. It's pure Swift !!
|
14
17
|
|
15
|
-
-
|
18
|
+
- XCFit provides Xcode Templates to create new Cucumberish and Fitnesse targets which reduce hectic Xcode configuration steps. It's all automated in XCFit
|
16
19
|
- One command to set all fully automated Xcode template for Cucumberish and Fitnesse targets
|
17
20
|
- New Template to create Gherkin Feature file in Xcode
|
18
|
-
- Automated
|
19
|
-
- Enhanced OCSlimProject
|
21
|
+
- Automated [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish) Setup in one command
|
22
|
+
- Enhanced [OCSlimProject](https://github.com/paulstringer/OCSlimProject) templates and automated Fitnesse download process.
|
20
23
|
- XCFit target templates are independent of native Xcode Test targets.
|
21
|
-
- Its native Xcode implementation, No Appium, Calabash etc etc
|
24
|
+
- We can stiil use Apple's brand new XCUI Testing framework. Its native Xcode implementation, No Appium, Calabash etc etc
|
22
25
|
- Setup Cucumberish and Fitnesse in Xcode within few minutes !!
|
23
26
|
|
24
27
|
***
|
25
28
|
|
29
|
+
|
30
|
+
### Quick Demo with Example App
|
31
|
+
|
32
|
+
You can clone the existing repo which has a demo app. To get started..Watch this animated GIF for the steps below.
|
33
|
+
|
34
|
+
![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/Quick_Demo.gif)
|
35
|
+
|
36
|
+
```
|
37
|
+
$ git clone https://github.com/Shashikant86/XCFit
|
38
|
+
$ cd XCFit/XCFitDemo
|
39
|
+
$ open XCFitDemo.xcworkspace
|
40
|
+
```
|
41
|
+
Run Unit, UI and Cucumberish test with Xcode. "cmd + U". Edit Scheme if nessesary to avoid running Unit Tests for this demo. Or Run nit from command line. Update Simulator device/OS version as installed in your Xcode if nessessary
|
42
|
+
|
43
|
+
```
|
44
|
+
$ xcodebuild -workspace XCFitDemo.xcworkspace -scheme XCFitDemo -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3' test | xcpretty -r html -r junit --test --color
|
45
|
+
```
|
46
|
+
Watch out HTML and JUnit reports generated in the 'Build/reports/' directory with XCPretty. Install XCpretty if you havent got already.
|
47
|
+
|
48
|
+
Running Fitnesse Tests: Clean, Build and Execute
|
49
|
+
|
50
|
+
```
|
51
|
+
$ xcodebuild -workspace XCFitDemo.xcworkspace -scheme XCFitAcceptanceTests -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3' clean build | xcpretty
|
52
|
+
|
53
|
+
$java -jar fitnesse-standalone.jar -v -o -c "FrontPage?suite&format=junit"
|
54
|
+
|
55
|
+
```
|
56
|
+
|
57
|
+
###### Using Fastlane
|
58
|
+
|
59
|
+
Assuming you have Bundler rubygem installed if not install it by "gem install bundler"
|
60
|
+
|
61
|
+
```
|
62
|
+
$ bundle install
|
63
|
+
$ bundle exec fastlane cucumberish
|
64
|
+
$ bundle exec fastlane fitnesse
|
65
|
+
```
|
66
|
+
|
67
|
+
|
68
|
+
Curently XCFitDemo App is configured on TravisCI which runs both Cucumberish and Fitnesse Tests. The sample .travis.yml is in the Github repo and sample logs from TravisCI [here](https://travis-ci.org/Shashikant86/XCFit/builds/145963673).
|
69
|
+
|
70
|
+
|
26
71
|
Big Thanks to
|
27
72
|
- [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish) : Provide native [Gherkin](https://github.com/cucumber/cucumber/wiki/Gherkin) parser for iOS Apps to enable BDD in Xcode using Given When Then. Yay!
|
28
73
|
- [OCSlimProject](https://github.com/paulstringer/OCSlimProject) : Provide Xcode Templates to enable BDD with Decision Tables using Fitnesse
|
@@ -30,9 +75,9 @@ Big Thanks to
|
|
30
75
|
XCFit automated configuration of these two guys.
|
31
76
|
|
32
77
|
### Version
|
33
|
-
CocoaPods -- [XCFit-CocoaPods](http://cocoadocs.org/docsets/XCFit) :
|
78
|
+
CocoaPods -- [XCFit-CocoaPods](http://cocoadocs.org/docsets/XCFit) : 0.1.0
|
34
79
|
|
35
|
-
RubyGems -- [xcfit-RubyGem](https://rubygems.org/gems/xcfit) :
|
80
|
+
RubyGems -- [xcfit-RubyGem](https://rubygems.org/gems/xcfit) : 0.8.0
|
36
81
|
|
37
82
|
### Tech & Software Requirements
|
38
83
|
|
@@ -45,6 +90,7 @@ Software:
|
|
45
90
|
* [Xcode](https://developer.apple.com/xcode/) - Ideally Xcode 7.X
|
46
91
|
* [RubyGems](https://rubygems.org/) - RubyGem with [Cocoapods](https://cocoapods.org/) installed
|
47
92
|
* [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.
|
93
|
+
* Ruby Packages : Xcpretty, Fastlane(Optional), Rake, Bundler.. Install with 'gem install <package_name>'
|
48
94
|
|
49
95
|
|
50
96
|
### Installation
|
@@ -86,38 +132,61 @@ $ xcfit set_xcode_templates
|
|
86
132
|
|
87
133
|
You will see new option for iOS and OSX i.e 'XCFit'. Once Clicked on it. You will see Cucumberish API, Cucumberish UI and Fitnesse Acceptance Tests targets. As shown
|
88
134
|
|
135
|
+
![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/new_targets.png)
|
136
|
+
|
89
137
|
|
90
138
|
|
91
139
|
- Once Clicked on the target e.g 'Cucumberish UI Test Bundle' Xcode will create UI testing target with all the required files with Bridging hrader for Cucumberish UI Testing.
|
92
|
-
Once Clicked on the target e.g 'Fitnesse Acceptance Test Bundle' Xcode will create UI tAcceptance test with all the required files with Bridging headers for the Fitnesse Acceptance Test. We will see that in details soon.
|
140
|
+
Once Clicked on the target e.g 'Fitnesse Acceptance Test Bundle' Xcode will create UI tAcceptance test with all the required files with Bridging headers for the Fitnesse Acceptance Test. We will see that in details soon.
|
93
141
|
|
94
|
-
-
|
142
|
+
![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/XCFit_Setup.gif)
|
143
|
+
You can watch YouTube video of XCFit setup [here](https://www.youtube.com/watch?v=Q3cKinwYwhE)
|
144
|
+
|
145
|
+
- This script also set new file type in Xcode to create new Gherking feature file
|
95
146
|
|
96
147
|
## Setting up Cucumberish UI Target
|
97
148
|
|
98
|
-
3 Steps to setup Cucumberish. You don't need to use Cocoapods to setup this target.
|
149
|
+
3 Steps to setup Cucumberish. You don't need to use Cocoapods to setup this target.
|
99
150
|
|
100
151
|
|
101
152
|
- Add new target iOS/macOS project and Select "File -> New -> Target -> XCFit -> Cucumberish UI Test Bundle". Give it a name you like e.g CucumberishUITests
|
102
153
|
|
103
|
-
Now that Xcode has created brand new target with all required Swift and Objective-C files to run Cucumberish. All Xcode setting has been done by the Xcode Template. Don't worry about configuting anything.
|
154
|
+
Now that Xcode has created brand new target with all required Swift and Objective-C files to run Cucumberish. All Xcode setting has been done by the Xcode Template. Don't worry about configuting anything.
|
104
155
|
|
105
156
|
|
106
157
|
- Now that you have to CD into the Cucumberish target directory .eg CucumberishUITests
|
107
158
|
|
108
|
-
```sh
|
159
|
+
```sh
|
109
160
|
$ cd $CUCUMBERISH_TARGET_DIR
|
110
161
|
$ xcfit get_cucumberish 0.0.7
|
111
162
|
```
|
112
163
|
This will download Cucumberish directory from version 0.0.7 and also creats 'Features' directory. You can then reference those directory in Xcode. For "Cucumberish" directory select 'Copy if needed and Create Group' and for the "Features" directory select don't create group or Copy if needed. Just " create folder reference"
|
164
|
+
Now Add sample Feature File to 'Features' directory either by File->New->Gherkin Or Just add it using your favourite text editor e.g demo.feature with content
|
113
165
|
|
114
|
-
|
166
|
+
```
|
167
|
+
Feature: Demo App Feature
|
168
|
+
|
169
|
+
Scenario: Demo Scenario
|
170
|
+
|
171
|
+
Given the app is running
|
172
|
+
|
173
|
+
```
|
174
|
+
|
175
|
+
- Finally from the Cucumberish target 'General' setting select 'Testing -> Target To Test' and configure scheme to add Cucumeerish UI target to Test
|
115
176
|
|
116
177
|
You are done !!
|
117
178
|
|
179
|
+
You can watch YouTube video of Cucumberish Setup [here](https://www.youtube.com/watch?v=Wd9myhNkpx4)
|
180
|
+
|
181
|
+
You can add more feature/Scenarios and implement steps definitions inside your Swift File. [Ahmed-Ali](https://github.com/Ahmed-Ali) creator of Cucumberish already implemented useful pre-defined steps have a look at this [Swift file](https://github.com/Ahmed-Ali/Cucumberish/blob/master/CucumberishExample/CucumberishExampleUITests/CCIStepDefinitions.swift). You are free to try Page Object Pattern and all other crazy stuff to abstract and refactor your Swift code.
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/CucumberishDemo.gif)
|
186
|
+
|
118
187
|
## Setting up Fitnesse Acceptance Target
|
119
188
|
|
120
|
-
You can also setup Fitnesse Acceptance Tests but you need to use Cocoapod for this target.
|
189
|
+
You can also setup Fitnesse Acceptance Tests but you need to use Cocoapod for this target.
|
121
190
|
|
122
191
|
Basically Steps are pretty much same mentioned in the [OCSlimProject](http://paulstringer.github.io/OCSlimProject/) but most of them are automated for simplicity. Here is simple way to set Fitnesse Acceptance tests for iOS/MacOS Apps
|
123
192
|
|
@@ -125,7 +194,7 @@ Basically Steps are pretty much same mentioned in the [OCSlimProject](http://pau
|
|
125
194
|
|
126
195
|
- Create new target, "File --> New --> Target --> XCFit --> Fitnesse Acceptance Test". Give it a suitable name e.g 'AcceptanceTests'
|
127
196
|
|
128
|
-
- Create/Update Podfile with
|
197
|
+
- Create/Update Podfile with
|
129
198
|
|
130
199
|
|
131
200
|
```ruby
|
@@ -137,9 +206,9 @@ target 'AcceptanceTests' do
|
|
137
206
|
end
|
138
207
|
```
|
139
208
|
|
140
|
-
Run 'Pod install' and build newly created Acceptance target from Xcode. You should see 'LaunchFitnesse' Script geerated and Your app should be talking to fitnesse now.
|
209
|
+
Run 'Pod install' and build newly created Acceptance target from Xcode. You should see 'LaunchFitnesse' Script geerated and Your app should be talking to fitnesse now.
|
141
210
|
|
142
|
-
- Now CD into FITNESSE_TARGET directory and Get Fitnesse JAR file by running
|
211
|
+
- Now CD into FITNESSE_TARGET directory and Get Fitnesse JAR file by running
|
143
212
|
|
144
213
|
```sh
|
145
214
|
$ cd $FITNESSE_TARGET
|
@@ -154,51 +223,135 @@ $ ./LaunchFitnesse
|
|
154
223
|
|
155
224
|
Now you should have Fitnesse up and runnig. Follow Paul's article for the details on how to write acceptance tests [here](http://stringerstheory.net/acceptance-testing-with-ios/)
|
156
225
|
|
157
|
-
|
226
|
+
You can watch YouTube video of XCFit Fitnesse [here](https://www.youtube.com/watch?v=Wd9myhNkpx4)
|
227
|
+
|
228
|
+
![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/AcceptanceTests.gif)
|
158
229
|
|
159
|
-
|
230
|
+
## Continous Integration & Test Reporting
|
231
|
+
|
232
|
+
Continous Integration is very important and you simply can't avoid that. XCFit will be easily configured on any CI server including Apple's own [Xcode Server](https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/) or very polular one [Jenkins](https://jenkins.io/) as we can generate reports in both HTML and JUnit format.
|
233
|
+
As of now, you might be running tests within Xcode, but there are some awsome tools which allows us to run our tests from command line. The 'xcodebuild' is being used to build and test Xcode Schemes. [Fastlane](https://github.com/fastlane/fastlane) seems much easier option to automate everything but it's upto you. These are long commands but you k ow better how to Script it Or Fastlane it, right ? :)
|
234
|
+
|
235
|
+
Curently XCFitDemo App is configured on TravisCI which runs both Cucumberish and Fitnesse Tests. The sample .travis.yml is in the Github repo and sample logs from TravisCI [here](https://travis-ci.org/Shashikant86/XCFit/builds/145963673). Watch out Live Execution :
|
236
|
+
|
237
|
+
![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/Travis_XCFit.gif)
|
160
238
|
|
161
239
|
### Cucumberish
|
162
|
-
|
163
|
-
You can execute Cucumberish tests with like this for XCFitDemo App.
|
164
240
|
|
165
|
-
|
241
|
+
You can execute Cucumberish tests with like this for XCFitDemo App.
|
242
|
+
|
243
|
+
[XCPretty](https://github.com/supermarin/xcpretty) can be used to generate JUnit Or HTML report as below
|
166
244
|
|
167
245
|
|
168
246
|
```sh
|
169
|
-
xcodebuild -workspace XCFitDemo.xcworkspace -scheme XCFitDemo -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6' test | xcpretty --test --color
|
247
|
+
xcodebuild -workspace XCFitDemo.xcworkspace -scheme XCFitDemo -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6' test | xcpretty -r html -r junit --test --color
|
170
248
|
```
|
171
249
|
|
172
|
-
You can now analyse the reports generated in the 'build/reports' directory.
|
250
|
+
You can now analyse the reports generated in the 'build/reports' directory. You will find both HTML and JUnit reports. You can configure these reports with Xcode-Server, Jenkins, TeamCity easily in the post build setting.
|
251
|
+
|
252
|
+
```
|
253
|
+
$ open build/reports/tests.html
|
254
|
+
```
|
255
|
+
|
256
|
+
|
257
|
+
![image](https://github.com/Shashikant86/XCFit-GIFS/blob/master/html_reports.png)
|
173
258
|
|
174
|
-
### Fitnesse
|
259
|
+
### Fitnesse
|
175
260
|
|
176
261
|
You can first build the Acceptance target
|
177
262
|
|
178
|
-
```sh
|
263
|
+
```sh
|
179
264
|
$ xcodebuild -workspace XCFitDemo.xcworkspace -scheme XCFitAcceptanceTests -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6' clean build | xcpretty
|
180
265
|
```
|
181
266
|
|
182
|
-
Now run the Fitnesse tests using
|
267
|
+
Now run the Fitnesse tests using
|
183
268
|
|
184
269
|
```sh
|
185
270
|
|
186
271
|
$ java -jar fitnesse-standalone.jar -v -o -c "FrontPage?suite"
|
187
272
|
```
|
188
|
-
You can also set reports directory and generate Junit style reports inside the "XCFitDemo/FitNesseRoot/files/testResults/" directory.
|
273
|
+
You can also set reports directory and generate Junit style reports inside the "XCFitDemo/FitNesseRoot/files/testResults/" directory. You can configure these reports with Xcode-Server, Jenkins, TeamCity easily in the post build setting.
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
## What XCFit can solve in iOS/macOS team?
|
278
|
+
XCFit can bring lot of improvement the way you work. The most common problems in iOS development is explained by Paul Stringer in this [article](http://stringerstheory.net/acceptance-testing-with-ios/). XCFit can solve few of them
|
279
|
+
|
280
|
+
- Better Developer/QA collabration, Early QA Involvement.
|
281
|
+
|
282
|
+
Usually,in the iOS development world, Developer build an app using Swift and Objective-C and army of manual and automated QA uses tools like Apppium, Calabash using languages like Ruby, Java, Python WTF !!. QA and Developers world is totally different. With XCFit you will be speaking same language that is "Swift". QA can write test script as we build. No need to wait until build is handed over. Just work with developer ! Little bit of learning curve for QA but you will save developers time as they don't to learn Java, Pyth or Ruby to help QA team
|
283
|
+
|
284
|
+
- Quick Acceptance & UI testing setup
|
285
|
+
|
286
|
+
You will be surprised by how easily/quickly you can setup Fitnesse(Acceptance Test) and Cucumberish(UI Testing) environmant in Xcode and running your first test.
|
287
|
+
|
288
|
+
- Getting Business people involved
|
189
289
|
|
290
|
+
As we can now able to write scenarios with Given/When/Then and decision tables. We can get business people involved to contribute to acceptance criteria. In short we got all benefits of BDD in iOS/macOS project.
|
190
291
|
|
191
|
-
|
292
|
+
- Developers don't need to learn Ruby or similar ! Just stick to Swift
|
192
293
|
|
193
|
-
|
294
|
+
You must be happy as you won't need to learn other language just in case QA ask something to solve. With XCFit it's everything Swift.
|
194
295
|
|
296
|
+
- Fix failed attempt to automate testing by QA team
|
195
297
|
|
298
|
+
As of now your QA team might have tried all wrappers on [UIAutomation](https://developer.apple.com/library/tvos/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/UIAutomation.html) e.g Appium, Calabash, Frank, KIF etc etc and keeping themselve busy writing some Ruby, Python, Java code to automate testing and all that attempts results in Slow, Brittle, Untrusted, Non-valuable UI tests causing harm to mobile development rather than good. With XCFit, everyone will be speaking same language and you can cover businness logic with lighting fast Fitnesse Tests and major journeys with UI tests. Keep it 80:20 means 80% Fitness and 20% Cucumberish or XCUI.
|
196
299
|
|
197
300
|
|
301
|
+
|
302
|
+
# Video Demo
|
303
|
+
|
304
|
+
### XCFit Xcode Setup
|
305
|
+
|
306
|
+
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/Q3cKinwYwhE/0.jpg)](http://www.youtube.com/watch?v=Q3cKinwYwhE)
|
307
|
+
|
308
|
+
|
309
|
+
### XCFit Cucumberish Demo
|
310
|
+
|
311
|
+
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/Wd9myhNkpx4/0.jpg)](http://www.youtube.com/watch?v=Wd9myhNkpx4)
|
312
|
+
|
313
|
+
|
314
|
+
### XCFit Fitnesse Demo
|
315
|
+
|
316
|
+
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/xFRSIugJ-FA/0.jpg)](http://www.youtube.com/watch?v=xFRSIugJ-FA)
|
317
|
+
|
198
318
|
## Author
|
199
319
|
|
200
320
|
Shashikant86, shashikant.jagtap@icloud.com
|
201
321
|
|
202
|
-
|
322
|
+
# TODO
|
323
|
+
|
324
|
+
* Swift Implementation of Gherkin Parser
|
325
|
+
* Cocoapods free installation. Carthage or Swift Package Manager once ready
|
326
|
+
* Setting up XCFit on Apple's own CI Xcode Server
|
327
|
+
|
328
|
+
## LICENSE
|
329
|
+
|
330
|
+
Copyright © 2014 Shashikant Jagtap, http://shashikantjagtap.net
|
331
|
+
|
332
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
333
|
+
a copy of this software and associated documentation files (the
|
334
|
+
"Software"), to deal in the Software without restriction, including
|
335
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
336
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
337
|
+
permit persons to whom the Software is furnished to do so, subject to
|
338
|
+
the following conditions:
|
339
|
+
|
340
|
+
The above copyright notice and this permission notice shall be
|
341
|
+
included in all copies or substantial portions of the Software.
|
342
|
+
|
343
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
344
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
345
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
346
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
347
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
348
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
349
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
350
|
+
|
351
|
+
## Contributing
|
203
352
|
|
204
|
-
|
353
|
+
1. Fork it ( https://github.com/Shashikant86/XCFit/fork )
|
354
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
355
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
356
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
357
|
+
5. Create a new Pull Request
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# references:
|
2
|
+
# * http://www.objc.io/issue-6/travis-ci.html
|
3
|
+
# * https://github.com/supermarin/xcpretty#usage
|
4
|
+
|
5
|
+
osx_image: xcode7.3
|
6
|
+
language: objective-c
|
7
|
+
# cache: cocoapods
|
8
|
+
# podfile: XCFitDemo/Podfile
|
9
|
+
before_install:
|
10
|
+
- bundle exec danger
|
11
|
+
script:
|
12
|
+
- cd XCFitDemo/
|
13
|
+
- pwd
|
14
|
+
- set -o pipefail && xcodebuild -list
|
15
|
+
- echo "==========Now Running Cucumberish Tests==================="
|
16
|
+
- set -o pipefail && xcodebuild -project XCFitDemo.xcodeproj -scheme XCFitDemo -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3' clean build test | xcpretty -s -r html -r junit --color
|
17
|
+
- echo "==========Now Building target for Fitnesse ==================="
|
18
|
+
- set -o pipefail && xcodebuild -workspace XCFitDemo.xcworkspace -scheme XCFitAcceptanceTests -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3' clean build | xcpretty
|
19
|
+
- echo "==========Now Running Fitnesse Tests ==================="
|
20
|
+
- set -o pipefail && java -jar fitnesse-standalone.jar -v -o -c "FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite?suite&format=junit"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Sometimes it's a README fix, or something like that - which isn't relevant for
|
2
|
+
# including in a project's CHANGELOG for example
|
3
|
+
declared_trivial = github.pr_title.include? "#trivial"
|
4
|
+
|
5
|
+
# Make it more obvious that a PR is a work in progress and shouldn't be merged yet
|
6
|
+
warn("PR is classed as Work in Progress") if github.pr_title.include? "[WIP]"
|
7
|
+
|
8
|
+
# Warn when there is a big PR
|
9
|
+
warn("Big PR") if git.lines_of_code > 500
|
10
|
+
|
11
|
+
# Don't let testing shortcuts get into master by accident
|
12
|
+
fail("fdescribe left in tests") if `grep -r fdescribe specs/`.length > 1
|
13
|
+
fail("fit left in tests") if `grep -r "fit specs/ `.length > 1
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<properties>
|
3
|
+
<Edit>true</Edit>
|
4
|
+
<Files>true</Files>
|
5
|
+
<Help>AddNumbers</Help>
|
6
|
+
<Properties>true</Properties>
|
7
|
+
<RecentChanges>true</RecentChanges>
|
8
|
+
<Refactor>true</Refactor>
|
9
|
+
<Search>true</Search>
|
10
|
+
<Test>true</Test>
|
11
|
+
<Versions>true</Versions>
|
12
|
+
<WhereUsed>true</WhereUsed>
|
13
|
+
</properties>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<properties>
|
3
|
+
<Edit>true</Edit>
|
4
|
+
<Files>true</Files>
|
5
|
+
<Help>ShouldIEat</Help>
|
6
|
+
<Properties>true</Properties>
|
7
|
+
<RecentChanges>true</RecentChanges>
|
8
|
+
<Refactor>true</Refactor>
|
9
|
+
<Search>true</Search>
|
10
|
+
<Test>true</Test>
|
11
|
+
<Versions>true</Versions>
|
12
|
+
<WhereUsed>true</WhereUsed>
|
13
|
+
</properties>
|