Skylark 0.0.4

Skylark 0.0.4

Ross Butler维护。



Skylark 0.0.4

  • Ross Butler

Skylark

CI Status Version Carthage compatible License Platform

特性

  • 执行包含使用Gherkin编写的场景的结构化特性文件
  • 带有示例的场景大纲
  • 标签表达式
  • 重试失败的场景

优势

  • 易于设置 - 只需将Skylark.framework添加到Xcode中的UI测试目标。
  • 无需在不同语言之间切换上下文 - 使用Swift编写所有测试代码。
  • 使用--retry标志允许测试重试多次,这样就不会在CI过程中将错误的测试标记为失败(只要它成功地超过大多数时间),但是测试将被标记为不稳定的。
  • 许多常见的步骤在您的场景中都会自动完成,例如检查某个屏幕或元素是否已显示。

使用方法

要开始,请将Skylark和XCTest框架导入到UI测试目标中,创建一个XCTest子类,并实例化一个测试运行者实例。确保您的特性文件已添加到UI测试包中,文件扩展名为.feature,然后调用test(featureFile:)来运行您的场景。

import Foundation
import Skylark
import XCTest

class MyUITests: XCTestCase {
    // Obtain test runner instance
    lazy var testRunner = Skylark.testRunner(testCase: self)
    
    // Run scenarios from feature file
    func testFromFeatureFile() {
        testRunner.test(featureFile: "Main")
    }
   
}

Skylark致力于减少您在特性文件上需要编写的额外Swift代码量,以便运行测试。为此,大多数存在检查(检查某个元素是否在屏幕上显示)和交互检查(例如,点按按钮)将自动完成。为了利用此功能,只需创建一个扩展名为.screen的JSON文件,例如:

{
    "name": "Main",
    "buttons": {
        "Test": "test-button"
    }
}

在上面的例子中,键是您在特性文件中引用元素时使用的名称,值是为您的UIKit元素分配的访问标识符(如果没有分配访问标识符,则可以使用标签文本)。

对于需要更多设置步骤的情况,测试运行器提供了一种方法来注册要执行的步骤。使用这些方法,您可以在遇到给定步骤时提供要执行的Swift代码。

安装

Cocoapods

CocoaPods 是一个依赖管理器,它将依赖插入到您的 Xcode 工作空间中。要使用 RubyGems 安装它,请运行以下命令

gem install cocoapods

要使用 Cocoapods 安装 Skylark,只需将以下行添加到您的 Podfile 中

pod "Skylark"

然后运行以下命令

pod install

更多信息请参阅 此处

Carthage

Carthage 是一个依赖管理器,它可以为您的项目手动集成生成二进制文件。您可以使用 Homebrew 安装它,以下是一些命令

brew update
brew install carthage

为了通过 Carthage 将 Skylark 集成到您的项目中,请将以下行添加到您项目的 Cartfile 中

github "rwbutler/Skylark"

在 macOS 终端中运行 carthage update --platform iOS 以构建框架,然后拖动 Skylark.framework 到您的 Xcode 项目中。

更多信息请参阅 此处

作者

Ross Butler

许可

Skylark 可在 MIT 许可证下获得。有关更多信息,请参阅 LICENSE 文件

附加软件

框架

  • Connectivity - 优化在iOS应用程序中确定网络连接的可到达性。
  • Skylark - 使用Gherkin语法编写Cucumber用例的完全Swift BDD测试框架。
  • TailorSwift - Swift核心库/Foundation框架扩展集合。
  • TypographyKit - 支持动态字体的iOS一致且可访问的视觉样式。

工具

Connectivity Skylark TypographyKit 调色板
Connectivity Skylark TypographyKit Palette