31
14

More than 3 years have passed since last update.

[iOS] Host Applicationを無効化してユニットテストを爆速化する

Last updated at Posted at 2020-01-27

はじめに

iOSアプリ開発において、テスト駆動開発(TDD)を採用していたり、ユニットテストを部分的に採用しているプロジェクトではユニットテストの実行速度が生産性に大きく影響します。

本記事ではHost Applicationを無効化してユニットテストの実行時間を短縮するためのTipsをご紹介します。

ユニットテストの実行プロセス

ユニットテストの主な実行プロセスは以下のようになっています。

  1. テストターゲットのビルド
  2. シミュレータ起動
  3. テスト対象のアプリケーションの起動
  4. ユニットテスト実行

テスト対象のアプリケーション起動には数十秒かかりますが、実はこのプロセスは省略することが可能です。

アプリケーションの起動プロセスを省略する

ユニットテスト時にアプリケーションの起動プロセスを省略するには

  • テスト対象のコードのEmbededd Frameworkへの切り出し
  • Host Applicationの無効化

をする必要があります。

Embededd Frameworkへの切り出し方法は以下の記事が参考になるかと思います。

Host Applicationの無効化は以下のように、テストターゲット設定のGeneralタブでHost ApplicationをNoneにします。

image.png

もしもテスト対象のターゲットやテストターゲットがライブラリに依存している場合は、以下のようにBuild PhasesにCopy FilesのRun Scriptを追加し、DestinationをFrameworkとしてライブラリをコピーします。

image.png

31
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
14