InjectionTDD 0.6.1

InjectionTDD 0.6.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2018 年 11 月

Bartosz Polaczyk 维护。



InjectionTDD

CI Status Version Carthage compatible License Platform

Swift4 Swift3.1

概述

该库通过使用 John Holdsworth 的 injectionforxcode 工具来触发 Xcode 单元测试。

每次您使用 ⌘+S 保存实现文件时,InjectionTDD 都会立即运行相关的单元测试。

quick

Swift 版本

由于 InjectionTDD 库是用 Objective-C 编写的,所以它与任何 Swift 版本都兼容。

要求

  • injectionforxcode(包含 TDD 功能的版本)
  • 在 Swift 中编写实现和单元测试(项目可以是混合 Objective-C 和 Swift)
  • Xcode 8 或 Xcode 9
  • 使用 xcode-select 的有效全局 Xcode 版本

限制

  • 目标中未使用静态库(.a 或静态 .framework)
  • 测试目标有“主应用程序”
  • 添加新的 .swift 文件时,需要按下 ⌘+⇧+U(或简单按 ⌘+U)

requirement_host_application.

安装

1. 确保已正确设置全局 Xcode(《xcode-select》)

  1. 调用 xcode-select -p
  2. 如果路径与您当前的 Xcode 版本不对应,请使用以下命令设置:command
sudo xcode-select -s /Applications/PATH_TO_YOUR_XCODE_VERSION/Contents/Developer

2. 将《InjectionTDD》集成到您的 Xcode 项目中

- 使用 CocoaPods 集成

《InjectionTDD》可通过 CocoaPods 获得。

要安装它,只需将以下行添加到您的 Podfile 中,并将其 添加到 Tests 目标 中。⚠️

...
  target 'REMTTests' do
    # Your test Pods
  
    pod 'InjectionTDD', '~> 0.5'
  end

- 使用 Carthage 集成

将以下行添加到 Cartfile 中,并将生成的 .framework 库与您的 测试目标 相连接。

github "polac24/InjectionTDD"

与编译 .framework 框架集成

将二进制框架添加到您的 测试目标。您可以在 发布部分 找到编译后的框架(InjectionTDD.framework.zip)。

您可以在 一种整合二进制框架的方法 中找到示例集成。

如何使用它?

  1. 运行 injectionforxcode
  2. 在您的测试目标中成功集成 InjectionTDD(步骤 2.)后,运行它(⌘+U),您将看到提示 Ready for InjectionTDD...

prompt

  1. 这意味着您的单元测试正在等待注入包,永远不会终止
  2. 使用 injectionforxcode,注入您的实现(例如快捷键 ⌃+=
  3. injectionforxcode 会自动为您文件中的所有相关测试找到并执行它们
  4. 您将在输出控制台看到所有操作的摘要以及您的测试摘要🎉

result

overview

  1. 要使用 ⌘+S 在每次保存后立即获取反馈,请在 injectionforxcode 中启用“文件监视器”

file_watcher

  1. 您可以通过在测试操作中添加环境变量 INJECTION_TDD_SKIP=TRUE 来选择性地在您的模式中禁用 InjectionTDD

Skip TDD

测试摘要通知

要显示每次测试完成后都出现通知,请安装额外的断点,显示测试套件的摘要

Success

Failure

摘要通知安装

⚠️请记住,当 Xcode 关闭时安装断点,否则新的断点可能不会被添加

mkdir -p /tmp/update_breakpoints_tdd && curl https://codeload.github.com/polac24/InjectionTDD/tar.gz/master | tar -xz --strip=3 --directory /tmp/update_breakpoints_tdd InjectionTDD-master/scripts/update_breakpoints/ && cd /tmp/update_breakpoints_tdd/ && ./update_breakpoints.sh && cd -

最佳实践

  1. 始终集成Keep InjectionTDD(例如,添加到Podfile中)并提供两种方案:(1)仅用于TDD开发;(2)用于具有禁用InjectionTDD的CI(见如何使用)。这有助于快速在标准开发和TDD开发之间切换。

Schemas

建议

  • 如果您想加速注入,请禁用代码覆盖率。在进行TDD时,只需取消选中测试方案中的“收集覆盖率数据”即可: no_coverage

作者

Bartosz Polaczyk,[email protected]

致谢

该库是John Holdsworth的出色工具injectionforxcode的补充。有关实时代码注入的更多详情,请参阅Injection, the App@Orta视频帖子

许可

InjectionTDD在MIT许可下可用。有关更多信息,请参阅LICENSE文件。