[SwiftPM] Swift Package のテスト

SwiftPackageManagerEyeCatch

Xcode では、ユニットテストのテンプレートも作ってくれます。
Swift Package として作ったテストの使い方を確認してみました。
確認環境
Xcode12.0 で確認しました。

通常プロジェクトと Swift Package の違い

Xcode で Swift Package を作っても、Xcode のプロジェクトファイル(*.xcodeproj) は作ってくれません。

Xcode で Swift Package を開くには、生成された Package.swift を使って開く必要があります。

テストコード

生成された Swift Package には、最初からテストのテンプレートも含まれています。

テストテンプレート

Swift Package の仕組みを使ったテスト実行

コマンドラインからの実行

テストを実行するためには、コマンドラインで以下のようにします。

コード

なお、この方法では、テストするアーキテクチャを指定することができません。

つまり、Xcode を動かしている Mac というアーキテクチャ上でのテストしか行えません。例えば、iOS 向けのライブラリには使えないと言うことです。

Xcode の仕組みを使ったテスト実行

Xcode 上からの実行

⌘+U で実行されます。これは、通常プロジェクトのユニットテスト実行と同じキー割り当てです。

Debug Area に結果が表示されます。

このときには、Xcode で選択しているターゲットアーキテクチャ上でのテストが行われます。

コマンドラインからの実行

以下のように、ターゲットを指定して実行することもできました。

コード

この方法では、destination の箇所でターゲットのアーキテクチャを指定してテストすることができます。

まとめ:Swift Package のテスト実行方法

Swift Package のテスト実行方法を改めて説明してみました。

Swift Package のテスト方法
  • (コマンドライン上) % swift test でテスト実行 // ターゲットアーキテクチャ指定できない
  • (Xcode 上) ⌘+U でテスト実行
  • (コマンドライン上) % xcodebuild -scheme (scheme名) test -destination “(ターゲット名)”

Swift Package の仕組みだけではなく、Xcode が用意している仕組みでしかテストできないケースもあるので、必要に応じて使い分ける必要がありそうです。

説明は以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です