xcfit 4.0.7 → 4.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Cocoapods/Podfile +15 -15
- data/Fastlane/Fastfile +31 -31
- data/README.md +42 -29
- data/XCFit.gemspec +1 -1
- data/XCFit.podspec +1 -1
- data/XCFit_Templates/XCFit/Ptotocol BDD Bundle Base.xctemplate/TemplateInfo.plist +3 -3
- data/homebrew/xcfit +1 -1
- data/lib/XCFit/version.rb +1 -1
- metadata +1 -2
- data/XCFit_Templates/XCFit/Ptotocol BDD Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___Tests.swift +0 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49bd74a7fe5d7653317da07248068a01a68006f5
|
4
|
+
data.tar.gz: f6bd8664389fe751c9b9fee74bce2ba6e1cebacb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8e3efb8dbbd855c830bdb151c4353b5a7604c6aaae9c185d468a84a1ac6d23196bab0d657ddf2dd9bad03e74d5d318d21168bd6f136ef34ab5d87a576e4ad52
|
7
|
+
data.tar.gz: 36fb83fd39f04179d1eec3227ecd27b27bfba5efcc3cfb83f742ce14df4c53d6b37032585cf05a8ad0340b5c90575ca8b051f2c1f8c5340e35cfd734080aa6d6
|
data/Cocoapods/Podfile
CHANGED
@@ -13,18 +13,18 @@ target PROTOCOL_BDD_TARGET do
|
|
13
13
|
pod 'XCFit'
|
14
14
|
end
|
15
15
|
|
16
|
-
target PAGE_OBJECT_TEST_TARGET do
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
target CUCUMBER_TEST_TARGET do
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
target FITNESSE_ACCEPTANCE_TEST_TARGET do
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
target FITNESSE_ACCEPTANCE_XCTEST_TARGET do
|
29
|
-
|
30
|
-
end
|
16
|
+
# target PAGE_OBJECT_TEST_TARGET do
|
17
|
+
# pod 'XCFit'
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# target CUCUMBER_TEST_TARGET do
|
21
|
+
# pod 'Cucumberish'
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# target FITNESSE_ACCEPTANCE_TEST_TARGET do
|
25
|
+
# pod 'OCSlimProject'
|
26
|
+
# end
|
27
|
+
#
|
28
|
+
# target FITNESSE_ACCEPTANCE_XCTEST_TARGET do
|
29
|
+
# pod 'OCSlimProjectTestBundleSupport'
|
30
|
+
# end
|
data/Fastlane/Fastfile
CHANGED
@@ -24,34 +24,34 @@ lane :xcfit do |options|
|
|
24
24
|
scan(opts)
|
25
25
|
end
|
26
26
|
|
27
|
-
desc "Runs XCFit Cucumberish Tests and Generate JUnit and HTML reports"
|
28
|
-
lane :xcfit_cucumberish do |options|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
desc "Runs XCFit Fitnesse Tests and Generate JUnit and HTML reports"
|
44
|
-
lane :xcfit_fitnesse do |options|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
end
|
27
|
+
# desc "Runs XCFit Cucumberish Tests and Generate JUnit and HTML reports"
|
28
|
+
# lane :xcfit_cucumberish do |options|
|
29
|
+
# opts = {
|
30
|
+
# :scheme => XCFIT_CUCUMBERISH_SCHEME,
|
31
|
+
# :workspace => WORKSPACE,
|
32
|
+
# :configuration => CONFIGURATION,
|
33
|
+
# :destination => DESTINATION,
|
34
|
+
# :buildlog_path => './build',
|
35
|
+
# :output_directory => './build/cucumberish/reports',
|
36
|
+
# :output_style => 'basic',
|
37
|
+
# :output_types => 'junit, html',
|
38
|
+
# :code_coverage => true,
|
39
|
+
# }
|
40
|
+
# scan(opts)
|
41
|
+
# end
|
42
|
+
#
|
43
|
+
# desc "Runs XCFit Fitnesse Tests and Generate JUnit and HTML reports"
|
44
|
+
# lane :xcfit_fitnesse do |options|
|
45
|
+
# opts = {
|
46
|
+
# :scheme => XCFIT_FITNESSE_SCHEME,
|
47
|
+
# :workspace => WORKSPACE,
|
48
|
+
# :configuration => CONFIGURATION,
|
49
|
+
# :destination => DESTINATION,
|
50
|
+
# :buildlog_path => './build',
|
51
|
+
# :output_directory => './build/fitnesse/reports',
|
52
|
+
# :output_style => 'basic',
|
53
|
+
# :output_types => 'junit, html',
|
54
|
+
# :code_coverage => true,
|
55
|
+
# }
|
56
|
+
# scan(opts)
|
57
|
+
# end
|
data/README.md
CHANGED
@@ -150,11 +150,6 @@ To setup Templates for Xcode 8 for XCUI, Cucumberish target and Gherkin File Typ
|
|
150
150
|
$ xcfit setup_xcode_templates
|
151
151
|
|
152
152
|
|
153
|
-
```
|
154
|
-
To Setup Fitnesse Templates (Optional)
|
155
|
-
|
156
|
-
```
|
157
|
-
$ xcfit setup_fitnesse_templates
|
158
153
|
```
|
159
154
|
|
160
155
|
- This will add couple of templates to your Xcode for iOS and macOS apps. In your app if you go to 'File--->New--->Target'
|
@@ -222,7 +217,7 @@ Now, we can fetch and build Carthage Dependencies using following command.
|
|
222
217
|
|
223
218
|
$ carthage update --platform iOS
|
224
219
|
|
225
|
-
This will checkout and build XCFit
|
220
|
+
This will checkout and build XCFit frameworks then we can manually drag those frameworks in the `Build Phases` of the test targets. This is explained in details in the later section.
|
226
221
|
|
227
222
|
### Swift Package Manager
|
228
223
|
|
@@ -246,16 +241,52 @@ We can build, test package using the commnds avavilable for the Swift Package Ma
|
|
246
241
|
|
247
242
|
|
248
243
|
---
|
249
|
-
# XCFit Swift Framework : XCUI Page Object Pattern + Pre-Defined Steps
|
244
|
+
# XCFit Swift Framework : XCUI Protocol Oriented, Page Object Pattern + Pre-Defined Steps
|
245
|
+
|
246
|
+
## Protocol Oriented BDD
|
247
|
+
|
248
|
+
XCFit template supports Protocol Oriented BDD. Swift is a protocol oriented language and wedon't want to miss the point of Protocol, Extensions and Enums. To setup template
|
249
|
+
|
250
|
+
- From Xcode, create a new app(Or use existing app) and selct File ---> New ----> Target
|
251
|
+
|
252
|
+
- Now Select 'XCFit' for iOS app and Click on 'Protocol Oriented BDD Bundle'
|
253
|
+
|
254
|
+
- Once Clicked Xcode will create UI testing target with properly structured Xcode Groups and required files. You can then make physical directories on Disk Or change the folder/group structure as per your need.
|
255
|
+
|
256
|
+
- You may want to delete autogenerated UI test from Apple's standard template.
|
257
|
+
|
258
|
+
- You don't have to so any setting to run those demo XCUI tests. Just CMD+U and You are good to go !
|
259
|
+
|
260
|
+
### What's in the Protocol Oriented BDD Template ?
|
261
|
+
|
262
|
+
* **Feature+Protocol.swift**
|
263
|
+
|
264
|
+
It's your feature will all the requirements which can be written as Acceptance tests
|
265
|
+
|
266
|
+
* **Feature+Extensions.swift**
|
267
|
+
|
268
|
+
It's extension on the Feature where you need to implement step definition in Given When Then format
|
269
|
+
|
270
|
+
* **Feature+Enums.swift**
|
271
|
+
|
272
|
+
All the XCUIElements for that Feature.
|
273
|
+
|
274
|
+
* **YOUR_TARGET_Test.swift**
|
275
|
+
|
276
|
+
This is test where you call Given When Then from Extensions. You can import `XCFit` framework and extend this class 'XCFit' and also confirms to 'Feature' protocol
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
## Page Object Pattern
|
250
281
|
|
251
282
|
XCFit templates gives an option to use very polular [Page Object Pattern](http://martinfowler.com/bliki/PageObject.html) with Apple's Xcode UI Testing framework. You can install templates and start using the code straight way, no need to use framework unless you want to use pre-defined BDD style tests.
|
252
283
|
|
253
284
|
|
254
|
-
## Setup '
|
285
|
+
## Setup 'Page Object Test bundle' Target
|
255
286
|
|
256
287
|
- From Xcode, create a new app(Or use existing app) and selct File ---> New ----> Target
|
257
288
|
|
258
|
-
- Now Select 'XCFit' for iOS app and Click on '
|
289
|
+
- Now Select 'XCFit' for iOS app and Click on 'Page Object Test Bundle'
|
259
290
|
|
260
291
|
- Once Clicked on the target e.g 'XCUI POM Test Bundle' Xcode will create UI testing target with properly structured Xcode Groups and required files. You can then make physical directories on Disk Or change the folder/group structure as per your need.
|
261
292
|
|
@@ -474,17 +505,6 @@ In order to get [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish/tree/mast
|
|
474
505
|
|
475
506
|
Create a 'Podfile' if you don't have already. In your Podfile, add following Pod entry and update/install pod
|
476
507
|
|
477
|
-
* **Swift 3.0.2**
|
478
|
-
|
479
|
-
Cocoapods is more automated than Carthage. We can create `Podfile` and add specific dependency for the target
|
480
|
-
|
481
|
-
```ruby
|
482
|
-
target '$_YOUR__TARGET' do
|
483
|
-
pod 'XCFit', :git => 'https://github.com/Shashikant86/XCFit.git', :tag => '3.0.0'
|
484
|
-
end
|
485
|
-
```
|
486
|
-
This will doownload Cocoapods supporting Swift 3.0.2
|
487
|
-
|
488
508
|
* **Swift 3.1**
|
489
509
|
|
490
510
|
You can doenload latest version 4.0.0 to work with Swift 3.1
|
@@ -519,18 +539,11 @@ XCFit adds 'Cucumberish' target to existing Scheme. You can remove that target a
|
|
519
539
|
|
520
540
|
Once you have setup XCFit Cucumberish templates, we need to get Cucumberish framework. In order to get [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish/tree/master/Cucumberish) using Carthage, we need to create `Cartfile` with following content
|
521
541
|
|
522
|
-
* **Swift 3.0.2**
|
523
|
-
|
524
|
-
Add the following to `Cartfile` to get Swift 3.0.2 compatable source
|
525
|
-
|
526
|
-
github "Shashikant86/XCFit" "3.0.0"
|
527
|
-
|
528
|
-
|
529
542
|
* **Swift 3.1**
|
530
543
|
|
531
|
-
You can get
|
544
|
+
You can get Cucumberish
|
532
545
|
|
533
|
-
github "
|
546
|
+
github "Ahmed-Ali/Cucumberish"
|
534
547
|
|
535
548
|
|
536
549
|
Now install, Carthage frameworks using commamnd
|
data/XCFit.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.description = %q{XCFit is a full stack BDD framework in Xcode for iOS and macOS apps with Swift using Cucumberish and Fitnesse. Native Xcode implementation, No Appium, No Calabash, No Ruby or any other non iOS language. Checkout XCFIT POD}
|
14
14
|
spec.homepage = "https://github.com/Shashikant86/XCFit"
|
15
15
|
|
16
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|XCFit-Example|XCFitnesse|spec|features|_Pods.xcodeproj|Sources|Tests|XCFit.xcodeproj)/}) }
|
17
17
|
spec.files.reject! { |fn| fn.include? "_Pods.xcodeproj" }
|
18
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
data/XCFit.podspec
CHANGED
@@ -68,7 +68,7 @@
|
|
68
68
|
<string>Feature+Extension.swift</string>
|
69
69
|
<string>Feature+Enum.swift</string>
|
70
70
|
<string>Info.plist:PackageType</string>
|
71
|
-
<string>
|
71
|
+
<string>Feature+Tests.swift</string>
|
72
72
|
</array>
|
73
73
|
<key>Definitions</key>
|
74
74
|
<dict>
|
@@ -97,10 +97,10 @@
|
|
97
97
|
<string><key>CFBundlePackageType</key>
|
98
98
|
<string>BNDL</string>
|
99
99
|
</string>
|
100
|
-
<key>
|
100
|
+
<key>Feature+Tests.swift</key>
|
101
101
|
<dict>
|
102
102
|
<key>Path</key>
|
103
|
-
<string>
|
103
|
+
<string>Feature+Tests.swift</string>
|
104
104
|
<key>Group</key>
|
105
105
|
<string>Tests</string>
|
106
106
|
</dict>
|
data/homebrew/xcfit
CHANGED
data/lib/XCFit/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcfit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shashikant86
|
@@ -112,7 +112,6 @@ files:
|
|
112
112
|
- XCFit_Templates/XCFit/Ptotocol BDD Bundle Base.xctemplate/TemplateIcon.png
|
113
113
|
- XCFit_Templates/XCFit/Ptotocol BDD Bundle Base.xctemplate/TemplateIcon@2x.png
|
114
114
|
- XCFit_Templates/XCFit/Ptotocol BDD Bundle Base.xctemplate/TemplateInfo.plist
|
115
|
-
- XCFit_Templates/XCFit/Ptotocol BDD Bundle Base.xctemplate/___PACKAGENAMEASIDENTIFIER___Tests.swift
|
116
115
|
- XCFit_Templates/XCFit/XCUI POM Test Bundle Base.xctemplate/Extensions.swift
|
117
116
|
- XCFit_Templates/XCFit/XCUI POM Test Bundle Base.xctemplate/HomeScreen.swift
|
118
117
|
- XCFit_Templates/XCFit/XCUI POM Test Bundle Base.xctemplate/HomeScreenTest.swift
|
@@ -1,38 +0,0 @@
|
|
1
|
-
//
|
2
|
-
//
|
3
|
-
// Created by XCFit Framework
|
4
|
-
// Copyright © 2016 XCFit Framework. All rights reserved.
|
5
|
-
//
|
6
|
-
|
7
|
-
/*
|
8
|
-
|
9
|
-
This is sample code created by XCFit Framework and can be edited/Removed as per your project need. You can also re-arrange Xcode Groups and directories as per your need.
|
10
|
-
|
11
|
-
This is a actual representation of the test which extends to XCFit and confirms to Feature protocol. We can write a protocol per test implement steps with extensions and store elements in the enums.
|
12
|
-
|
13
|
-
*/
|
14
|
-
|
15
|
-
import XCTest
|
16
|
-
|
17
|
-
//import XCFit
|
18
|
-
|
19
|
-
// Once XCFit is imported then you can extend this class to use pre-defined steps
|
20
|
-
|
21
|
-
class ___PACKAGENAMEASIDENTIFIER___Tests: XCTestCase, Feature {
|
22
|
-
|
23
|
-
override func setUp() {
|
24
|
-
super.setUp()
|
25
|
-
|
26
|
-
continueAfterFailure = false
|
27
|
-
XCUIApplication().launch()
|
28
|
-
}
|
29
|
-
|
30
|
-
override func tearDown() {
|
31
|
-
super.tearDown()
|
32
|
-
}
|
33
|
-
|
34
|
-
func testAppIsRunning() {
|
35
|
-
givenTheAppIsRunning()
|
36
|
-
}
|
37
|
-
}
|
38
|
-
|