2016-06-30 5 views
8

個々のスキームを手動で選択して実行することなく、リリースビルドでデバッグビルドとパフォーマンステストで単体テストを実行する方法はありますか?テストスキームの異なるビルド構成

私は単体テストと性能テスト計画を持っています。ユニットテストスキームのテスト構成では、デバッグビルドを選択し、パフォーマンステストスキームではリリースビルドを選択しました。個々のスキームを個別に実行すると、それぞれデバッグビルドとリリースビルドが実行されます。

これらのスキームの両方を実行する別のスキームを作成した場合、その新しいスキームは独自のビルド構成を持ちます。私は、この新しいスキームのためのデバッグのビルド設定を設定すると、私は同様に私のパフォーマンステストのためのデバッグビルドを取得します。

答えて

1

さまざまなテストバンドルを使用して、必要なものを組み込む/除外することができます。

私が意味するのは、独自のカスタムテストターゲット(バンドル)を作成し、Xcodeテストナビゲータを使用することです。

たとえば、MyUnitBundleTestsターゲットとMyPerformanceBundleTestsターゲットを作成します。クラス、メソッドなどの組み込み/除外を選択する2つの別個のテストバンドルになります。

テストナビゲータには、プロジェクトに含まれるテストバンドルと関連付けられたクラス、メソッドなどの階層リストが表示されます。 テストナビゲータリストの項目をControl-クリックし、ショートカットメニューから有効または無効を選択することで、スキーム内の項目を有効または無効にすることで、テストバンドル、クラス、およびメソッドを選択的に有効または無効にすることができます。

Testing with Xcode - Quick Start

Testing with Xcode - Running Tests and Viewing Results

テストを実行するには、いくつかの追加のインタラクティブな方法があります。 Xcodeは、テスト対象がスキームに含まれ、有効になっていることに基づいてテストを実行します。テストナビゲータを使用すると、スキームエディタを使用せずに、スキームにどのテストターゲット、クラス、およびメソッドが含まれているか、有効または無効になっているかを直接制御できます。

enter image description here

ない、これはあなたが希望しているものであるが、これは私がスキームエディタまで行かなくてもテストのために考えることができる唯一の選択肢であるか確認します。

+0

これがどのように役立つか分かりません。私は現在2つのターゲットを持っています。私はどちらかを実行することができますが、私は両方を実行することはできません。テストナビゲータは、選択されていないターゲットをグレーで表示します。手動で実行するには、そのターゲットに手動で切り替える必要があります。 – rid

+0

こんにちは。 '手動でスキームを選択して実行せずに 'と言ったとき、私はあなたがスキームエディタを意味すると思った。 – tymac

0

目的の動作を達成する方法があるかもしれませんが、それはより多くのハックです。

私が見ている主な問題は、スキームのテストアクションのための望ましいビルド構成です。ビルド設定はスキーム内のすべてのターゲットに適用されるので、デバッグとリリースの両方の設定でターゲットを構築するためにXcodeを騙す方法を見つける必要があります。それは言われて、ここでのアイデアです:xcconfigファイルに

  1. エクスポートターゲットのリリース構成(xcodebuild -scheme "schemeName" -showBuildSettings >> release.xcconfig、それが唯一のリリースの設定が含まれていることを確認してください)
  2. 構築し、あなたのパフォーマンステストのために別のターゲットを作成します。リリース構成の前述のxcconfigファイルにこの新しいターゲットのデバッグコンフィギュレーションを設定し、同じソースファイル
  3. (それは基本的に、我々はXcodeのをだます一部である)
  4. は、ビルドアクションにオリジナルと新しく作成されたターゲットを追加しますテストバンドルを追加します(テストバンドルがあると仮定します)。別のテストバンドル)
  5. テストアクションのデバッグビルド設定を選択します。

あなたは今、両方のデバッグ中にソースを構築し、解放し、デバッグビルド構成とリリース構成のパフォーマンステストであなたのユニットテストを実行する必要がありますする必要があり、あなたのスキームをテストする場合。

セットアップは、両方のターゲットに新しいソースファイルを追加する必要があるため、少し脆弱です。あなたはルビースクリプトとxcodeproj gemを使ってプロセスを自動化できるはずです。

希望に役立ちます。

関連する問題