xcfit 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +11 -6
  3. data/Dangerfile +11 -0
  4. data/README.md +186 -33
  5. data/XCFitDemo/.travis.yml +20 -0
  6. data/XCFitDemo/Dangerfile +13 -0
  7. data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/AddNumbers/content.txt +3 -0
  8. data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/AddNumbers/properties.xml +13 -0
  9. data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEat/content.txt +3 -0
  10. data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEat/properties.xml +13 -0
  11. data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEatThree/content.txt +3 -0
  12. data/XCFitDemo/FitNesseRoot/FrontPage/{ShoudIBuyMilk → XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEatThree}/properties.xml +2 -0
  13. data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEatTwo/content.txt +3 -0
  14. data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/ShouldIEatTwo/properties.xml +14 -0
  15. data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/XCFitDemoFitnesseSuite/content.txt +2 -0
  16. data/XCFitDemo/FitNesseRoot/FrontPage/{Suite → XCFitDemoFitnesse/XCFitDemoFitnesseSuite}/properties.xml +0 -0
  17. data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/content.txt +1 -0
  18. data/XCFitDemo/FitNesseRoot/FrontPage/XCFitDemoFitnesse/properties.xml +13 -0
  19. data/XCFitDemo/FitNesseRoot/FrontPage/content.txt +4 -0
  20. data/XCFitDemo/FitNesseRoot/FrontPage/properties.xml +1 -1
  21. data/XCFitDemo/FitNesseRoot/RecentChanges/content.txt +7 -4
  22. data/XCFitDemo/FitNesseRoot/files/testResults/{FrontPage/20160716220147_1_0_0_0.xml → FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730202917_0_0_1_0.xml} +22 -22
  23. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730202956_0_0_0_1.xml +156 -0
  24. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203436_0_0_0_1.xml +108 -0
  25. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203512_0_0_0_1.xml +108 -0
  26. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203620_0_1_0_0.xml +111 -0
  27. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203713_0_0_0_1.xml +48 -0
  28. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203755_0_0_0_1.xml +48 -0
  29. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203829_0_1_0_0.xml +111 -0
  30. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730203928_0_0_0_1.xml +48 -0
  31. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730204257_0_0_0_1.xml +48 -0
  32. 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
  33. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730204720_0_0_0_1.xml +108 -0
  34. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730204807_0_0_0_1.xml +49 -0
  35. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730204924_0_0_0_1.xml +51 -0
  36. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730205820_0_0_0_1.xml +48 -0
  37. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211016_0_0_0_1.xml +48 -0
  38. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211125_0_0_0_1.xml +48 -0
  39. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211239_0_0_0_1.xml +48 -0
  40. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211334_0_1_0_0.xml +111 -0
  41. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211438_0_1_0_0.xml +111 -0
  42. data/XCFitDemo/FitNesseRoot/files/testResults/{FrontPage/20160715235803_0_0_1_0.xml → FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211527_0_0_0_1.xml} +24 -22
  43. data/XCFitDemo/FitNesseRoot/files/testResults/{FrontPage/20160715235936_0_0_1_0.xml → FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211753_0_0_0_1.xml} +22 -23
  44. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730211908_0_0_0_1.xml +48 -0
  45. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212014_0_0_0_1.xml +48 -0
  46. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212120_0_0_0_1.xml +48 -0
  47. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212155_0_0_0_1.xml +108 -0
  48. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212224_0_0_0_1.xml +48 -0
  49. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212548_0_0_0_1.xml +48 -0
  50. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212623_0_1_0_0.xml +111 -0
  51. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730212653_1_0_0_0.xml +110 -0
  52. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730213113_1_0_0_0.xml +86 -0
  53. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.AddNumbers/20160730213226_1_0_0_0.xml +86 -0
  54. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730201717_0_0_0_0.xml +33 -0
  55. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730201819_0_0_0_0.xml +33 -0
  56. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730201907_0_0_0_1.xml +144 -0
  57. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202104_0_0_0_1.xml +96 -0
  58. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202226_0_0_0_1.xml +96 -0
  59. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202311_0_0_0_1.xml +96 -0
  60. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202342_0_0_0_1.xml +96 -0
  61. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202427_0_1_0_0.xml +99 -0
  62. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202459_1_0_0_0.xml +98 -0
  63. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730202723_1_0_0_0.xml +74 -0
  64. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730213114_1_0_0_0.xml +74 -0
  65. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEat/20160730213226_1_0_0_0.xml +74 -0
  66. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatThree/20160730202723_1_0_0_0.xml +74 -0
  67. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatThree/20160730213114_1_0_0_0.xml +74 -0
  68. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatThree/20160730213226_1_0_0_0.xml +74 -0
  69. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatTwo/20160730202648_1_0_0_0.xml +98 -0
  70. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatTwo/20160730202723_1_0_0_0.xml +74 -0
  71. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatTwo/20160730213114_1_0_0_0.xml +74 -0
  72. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite.ShouldIEatTwo/20160730213226_1_0_0_0.xml +74 -0
  73. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite/20160730202723_3_0_0_0.xml +73 -0
  74. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite/20160730213113_4_0_0_0.xml +85 -0
  75. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.XCFitDemoFitnesse.XCFitDemoFitnesseSuite/20160730213225_4_0_0_0.xml +85 -0
  76. data/XCFitDemo/FitNesseRoot/properties +1 -1
  77. data/XCFitDemo/Gemfile +7 -0
  78. data/XCFitDemo/Gemfile.lock +310 -0
  79. data/XCFitDemo/LaunchFitnesse +1 -0
  80. data/XCFitDemo/Pods/Headers/Private/OCSlimProject/OCSlimProject.h +1 -0
  81. data/XCFitDemo/Pods/Headers/Public/OCSlimProject/OCSlimProject.h +1 -0
  82. data/XCFitDemo/Scanfile +3 -0
  83. data/XCFitDemo/XCFitAcceptanceTests/AddNumbers.swift +38 -0
  84. data/XCFitDemo/XCFitAcceptanceTests/ShouldIEat.swift +34 -0
  85. data/XCFitDemo/XCFitDemo.xcodeproj/project.pbxproj +8 -0
  86. data/XCFitDemo/XCFitDemo.xcodeproj/xcshareddata/xcschemes/XCFitAcceptanceTests.xcscheme +91 -0
  87. data/XCFitDemo/XCFitDemo.xcodeproj/xcshareddata/xcschemes/XCFitDemo.xcscheme +101 -0
  88. data/XCFitDemo/fastlane/Appfile +7 -0
  89. data/XCFitDemo/fastlane/Fastfile +65 -0
  90. data/XCFitDemo/fastlane/README.md +36 -0
  91. data/XCFitDemo/fastlane/report.xml +16 -0
  92. data/XCFitDemo/fastlane/test_output/report.html +171 -0
  93. data/XCFit_Templates/XCFit/Base Acceptance Testing Bundle.xctemplate/TemplateIcon.icns +0 -0
  94. data/XCFit_Templates/XCFit/Base Acceptance Testing Bundle.xctemplate/TemplateInfo.plist +134 -0
  95. data/XCFit_Templates/XCFit/Base Acceptance Testing Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___.m +17 -0
  96. data/XCFit_Templates/XCFit/Base Acceptance Testing Bundle.xctemplate/___PACKAGENAMEASIDENTIFIER___.swift +13 -0
  97. data/XCFit_Templates/XCFit/Base Acceptance Testing Bundle.xctemplate/___POD_NAME___.m +25 -0
  98. 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
  99. data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/FixtureExample.swift +12 -8
  100. data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/SlimTables.h b/data/XCFit_Templates/XCFit/Base Acceptance → Tests.xctemplate/SlimTables.h +0 -0
  101. data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/TemplateInfo.plist +55 -50
  102. data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/___PACKAGENAMEASIDENTIFIER___-Bridging-Header.h +11 -0
  103. data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/___PACKAGENAMEASIDENTIFIER___.m +21 -3
  104. data/XCFit_Templates/XCFit/Mac Acceptance Testing Bundle.xctemplate/TemplateIcon.icns +0 -0
  105. data/XCFit_Templates/XCFit/Mac Acceptance Testing Bundle.xctemplate/TemplateInfo.plist +40 -0
  106. data/XCFit_Templates/XCFit/Mac Acceptance Tests.xctemplate/Empty.xib b/data/XCFit_Templates/XCFit/Mac Acceptance → Tests.xctemplate/Empty.xib +0 -0
  107. data/XCFit_Templates/XCFit/Mac Acceptance Tests.xctemplate/TemplateIcon.icns +0 -0
  108. data/XCFit_Templates/XCFit/Mac Acceptance Tests.xctemplate/TemplateInfo.plist +8 -1
  109. data/XCFit_Templates/XCFit/iOS Acceptance Testing Bundle.xctemplate/TemplateIcon.icns +0 -0
  110. data/XCFit_Templates/XCFit/iOS Acceptance Testing Bundle.xctemplate/TemplateInfo.plist +40 -0
  111. data/XCFit_Templates/XCFit/iOS Acceptance Tests.xctemplate/TemplateIcon.icns +0 -0
  112. data/XCFit_Templates/XCFit/iOS Acceptance Tests.xctemplate/TemplateInfo.plist +7 -0
  113. data/lib/XCFit/version.rb +1 -1
  114. metadata +95 -47
  115. data/XCFitDemo/FitNesseRoot/FrontPage/BuyMilk/content.txt +0 -6
  116. data/XCFitDemo/FitNesseRoot/FrontPage/BuyMilk/properties.xml +0 -12
  117. data/XCFitDemo/FitNesseRoot/FrontPage/ShoudIBuyMilk/content.txt +0 -6
  118. data/XCFitDemo/FitNesseRoot/FrontPage/Suite/content.txt +0 -1
  119. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160715235959_0_0_0_1.xml +0 -606
  120. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160716102541_0_0_0_1.xml +0 -606
  121. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160716102614_0_0_0_1.xml +0 -418
  122. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160716102806_0_0_0_1.xml +0 -418
  123. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160716103627_0_0_0_1.xml +0 -418
  124. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.BuyMilk/20160716103912_0_1_0_0.xml +0 -438
  125. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160715235959_0_0_0_1.xml +0 -606
  126. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716102541_0_0_0_1.xml +0 -606
  127. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716102614_0_0_0_1.xml +0 -418
  128. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716102807_0_0_0_1.xml +0 -418
  129. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716103627_0_0_0_1.xml +0 -418
  130. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716103912_0_1_0_0.xml +0 -438
  131. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716104103_0_1_0_0.xml +0 -438
  132. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716104135_1_0_0_0.xml +0 -266
  133. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716220147_1_0_0_0.xml +0 -242
  134. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160715235959_0_0_0_2.xml +0 -61
  135. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716102541_0_0_0_2.xml +0 -61
  136. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716102614_0_0_0_2.xml +0 -61
  137. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716102806_0_0_0_2.xml +0 -61
  138. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716103627_0_0_0_2.xml +0 -61
  139. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716103912_0_2_0_0.xml +0 -61
  140. data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716104103_0_1_0_0.xml +0 -49
  141. data/XCFitDemo/LaunchFitnesse +0 -156
  142. data/XCFitDemo/Pods/Headers/Private/OCSlimProject/OCSlimProject.h +0 -3
  143. data/XCFitDemo/Pods/Headers/Public/OCSlimProject/OCSlimProject.h +0 -3
  144. data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/TemplateIcon.png +0 -0
  145. data/XCFit_Templates/XCFit/Base Acceptance Tests.xctemplate/TemplateIcon@2x.png +0 -0
  146. data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/TemplateIcon.png +0 -0
  147. data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/TemplateIcon@2x.png +0 -0
  148. data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/TemplateInfo.plist +0 -117
  149. data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___-Bridging-Header.h +0 -7
  150. data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.h +0 -14
  151. data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.m +0 -17
  152. data/XCFit_Templates/XCFit/Cucumberish API Test Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___.swift +0 -23
  153. data/XCFit_Templates/XCFit/MacOS API Cucumberish Testing Bundle.xctemplate/TemplateInfo.plist +0 -39
  154. 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: 359a742c6da8b3f8cac4cb608af043b999a0d770
4
- data.tar.gz: ee93c85a6b1ded10dceb6e82ed114b87de5dc988
3
+ metadata.gz: c0f7f8725d28712acee9f6958cc1614ccecd887c
4
+ data.tar.gz: 6e222f03ee57c9f98281a8b2842b332ddac0a3dd
5
5
  SHA512:
6
- metadata.gz: c7b3d8ad162aae77bba2720c1f8b38dc4ccad1529fba03de3ad38162dfad66e76e7f9288a50ff8d02f3dbcb19f904f59d728770ed0f9c1095adbfab047881369
7
- data.tar.gz: 18f8a4c526e5dd480c49929280d95dcf1d047b9b2771b71bbf6ba983f4c81dcc1e0d8b596a8b665d6a8f296eff055d5ef96d1d5a0c2c5f43bf336b13a693d93d
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
- # podfile: Example/Podfile
9
- # before_install:
10
- # - gem install cocoapods # Since Travis is not always on latest version
11
- # - pod install --project-directory=Example
8
+ podfile: XCFitDemo/Podfile
9
+ before_install:
10
+ - gem install danger
11
+ - danger
12
+ # - pod install --project-directory=XCFitDemo
12
13
  script:
13
- - set -o pipefail && xcodebuild test -workspace Example/XCFit.xcworkspace -scheme XCFit-Example -sdk iphonesimulator9.3 ONLY_ACTIVE_ARCH=NO | xcpretty
14
- - pod lib lint
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
- # XCFit
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
- - XCfit provides Xcode Templates to create new Cucumberish and Fitnesse targets which reduce hectic Xcode configuration steps. It's all automated in XCfit
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 almost all [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish) Setup in one command
19
- - Enhanced OCSlimProject (https://github.com/paulstringer/OCSlimProject) templates and automated Fitnesse download process.
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) : TBD
78
+ CocoaPods -- [XCFit-CocoaPods](http://cocoadocs.org/docsets/XCFit) : 0.1.0
34
79
 
35
- RubyGems -- [xcfit-RubyGem](https://rubygems.org/gems/xcfit) : TBD
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
- - This script also set new file type in Xcode to create new Gherking feature file
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
- - Finally from the Cucumberish target 'General' setting select 'Testing -> Target To Test' and configure scheme to add Cucumeerish UI target to Test
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
- ## Continous Integration & Test Reporting
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
- 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 ? :)
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
- [XCPretty](https://github.com/supermarin/xcpretty) can be used to generate JUnit Or HTML report as below
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
- # Video Demo
292
+ - Developers don't need to learn Ruby or similar ! Just stick to Swift
192
293
 
193
- Coming Soon !
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
- ## License
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
- XCFit is available under the MIT license. See the LICENSE file for more info.
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,3 @@
1
+ |Add Numbers |
2
+ |num1|num2|add?|
3
+ |2 |3 |ok |
@@ -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,3 @@
1
+ |Should I Eat|
2
+ |hungry |eat?|
3
+ |no |no |
@@ -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>