安装和运行
本文档向你介绍如何安装配置EarlGrey并完成你的第一次测试。
安装EarlGrey
你可以通过三种方式将EarlGrey添加到Xcode项目中:使用CocoaPods,Carthage或通过XCode Pjoject手动集成。
对于EarlGrey,我们强烈推荐CocoaPods作为安装的最佳方式,以保持EarlGrey版本是最新的。
CocoaPods安装
第1步:设置单元测试目标
- 要创建一个新的单元测试(XCTest)目标,请在Xcode Project Navigator中选择你的项目,然后从菜单中单击Editor → Add Target…
- 在添加目标窗口中,选择 iOS → Test → iOS Unit Testing Bundle:点击Next →Add a Test Target Name→Finish.
- Test Target必须有与之相关的Scheme。要添加一个Scheme,请转到Product → Scheme → Manage Schemes,按(+)号,然后从下拉菜单中选择目标。确保Container已设置为需要测试的应用。然后点击Close。
第2步:添加EarlGrey作为依赖框架
-
通过
gem install earlgrey命令安装Earl gem。如果你还没有Ruby或者不是最新版本,请参阅Ruby 安装部分。 -
在Podfile的test target部分里,添加EarlGrey作为依赖项。
target TEST_TARGET do project PROJECT_NAME use_frameworks! # Required for Swift Test Targets only inherit! :search_paths # Required for not double-linking libraries in the app and test targets. pod 'EarlGrey' end完成后,请执行pod install。 有关不同版本之间的兼容性,请参阅此文档。 要下载特定版本的gem,请使用gem install earlgrey -v x.y.z.
第3步:打开workspace并验证你是否看到EarlGrey。
成功运行pod install命令后,打开生成的workspace并在Pods /目录中找到安装的EarlGrey。 生成的Pods /project应该类似于:
配置并运行你的第一次测试
因为EarlGrey基于XCTest,所以在Xcode中创建你的第一个测试用例就像创建一个新的Unit Test类一样简单。 小心不要将Unit Test类与UI Test类混为一谈。 UI Test类使用添加到XCTest中的新UI Testing特性,但尚未与EarlGrey兼容。
-
Ctrl +单击你的应用程序源文件的文件夹,然后选择New file....将出现以下对话框:
-
选择Unit Test类,然后单击Next。 在以下屏幕上,输入测试用例的名称。 对于这个例子,让我们把它称作MyFirstEarlGreyTest:
-
在下一个屏幕上,确保测试用例与Unit Test target相关联。 在这种情况下,我们的target是SimpleAppTests:
-
Xcode将为我们创建一个新的测试用例,但我们不需要其中的大部分代码。 让我们更改代码,只留下一个测试方法,并包含EarlGrey框架,如下所示:
对于Swift测试:
import EarlGrey class MyFirstEarlGreyTest: XCTestCase { func testExample() { // Your test actions and assertions will go here. } }对于Objective-C测试:
@import EarlGrey; @interface MyFirstEarlGreyTest : XCTestCase @end @implementation MyFirstEarlGreyTest - (void)testExample { // Your test actions and assertions will go here. } @end -
现在让我们添加一个简单的EarlGrey断言,检查是否存在window并证明它是显示的。 以下是最终的测试结果:
对于Swift测试:
func testExample() { EarlGrey.selectElement(with: grey_keyWindow()) .assert(grey_sufficientlyVisible()) }对于Objective-C测试:
- (void)testPresenceOfKeyWindow { [[EarlGrey selectElementWithMatcher:grey_keyWindow()] assertWithMatcher:grey_sufficientlyVisible()]; } -
就是这样! 与其他任何单元测试一样,此测试将显示在测试导航器中,因此你只需单击运行图标或按Ctrl +单击测试名称,然后选择测试“testPresenceOfKeyWindow”即可运行该测试。 由于这是一个常规的单元测试,因此你可以在测试和应用程序代码中放置断点,也可以照常使用内置工具。