Emcee Banner

欢迎使用 Emcee 项目,它是在多个服务器(无论是裸机还是容器化)上并行运行 Android 和 iOS 测试的终极解决方案。

Emcee 允许您将单元测试、集成测试和 UI 测试分成更小的块来运行,从而分散负载并更快地获得测试运行的结果。 共享队列管理测试执行的顺序。 Emcee worker 自动执行测试并维护其模拟器/仿真器的生命周期。 Emcee 可以生成各种测试报告,例如 Junit、Allure、XCResult。 跟踪报告将帮助您了解测试运行在不同机器上的行为。

特性

Emcee 设置

在部署 Emcee 并使其正常运行的过程中,您将遇到以下术语。

测试工作流程

典型的测试工作流程涉及几个步骤,并且从 Emcee 之外开始。

Workflow

在 Emcee 上运行任何测试的前提是拥有输入工件。 Emcee 支持不同的输入类型:xctest、target 和 runner 应用程序包、xctestrun(来自测试计划)用于 iOS,以及 application、testApplication apk 用于 Android。 Emcee 不会创建这些测试输入。 通常,您使用诸如 GitHub Actions、CircleCI 之类的 CI 工具来构建项目,然后将构建工件上传到 Emcee worker 可以访问的存储。 或者可以使用本地构建来创建此类工件,Emcee 客户端将在安排测试运行时提供它们。

通过我们的 示例项目 开始使用 Emcee 在本地构建和测试 iOS 应用程序。 使用我们的 指南 部署 Emcee 队列和 worker 以运行您的 Android 测试。

高级 Emcee 配置

完整的文档可在我们的 Wiki 中找到。

runTests 命令允许您快速启动并运行 Emcee;但是,它不允许进行大量配置。 另一方面,runTestsOnRemoteQueue 命令允许对测试的执行方式进行细粒度的控制。 要开始使用 runTestsOnRemoteQueue,请查看 队列服务器配置测试参数文件 wiki 页面。

出版物

代码浏览

Emcee 使用 Swift Package Manager 来构建、测试和暴露 Swift 包。

要开始浏览代码,请打开 Package.swift 或执行 make open 以生成并打开 Xcode 项目。

贡献

我们很高兴接受您的 Pull Request。 如果某些内容对您不起作用,请提交 Issue 告知我们。 阅读文档并提出改进建议!

可帮助您进行开发工作流程的通用命令

Package.swift 文件自动生成。 您必须在提交 Pull Request 之前更新它(运行 make package)。 如果您忘记这样做,CI 检查将会失败。