10

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

単体テストとパフォーマンス テスト スキームがあります。単体テスト スキームのテスト コンフィギュレーションではデバッグ ビルドを選択し、パフォーマンス テスト スキームではリリース ビルドを選択しました。各スキームを個別に実行すると、それぞれデバッグ ビルドとリリース ビルドが得られます。

これらのスキームの両方を実行する別のスキームを作成すると、その新しいスキームには独自のビルド構成があります。この新しいスキームのデバッグのビルド構成を設定すると、パフォーマンス テストのデバッグ ビルドも取得されます。

4

2 に答える 2

1

目的の動作を実現する方法はあるかもしれませんが、それはハックにすぎません。

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

  1. ターゲットのリリース設定を xcconfig ファイルにエクスポートします (xcodebuild -scheme "schemeName" -showBuildSettings >> release.xcconfigリリース設定のみが含まれていることを確認してください) 。
  2. 同じソース ファイルをビルドするパフォーマンス テスト用の別のターゲットを作成します。
  3. この新しいターゲットのデバッグ構成を、前述のリリース構成の xcconfig ファイルに設定します (基本的に、Xcode を騙す部分です)。
  4. 元のターゲットと新しく作成されたターゲットをスキームのビルド アクションに追加し、テスト バンドルを追加します (別のテスト バンドルにあると仮定します)。
  5. テスト アクションのデバッグ ビルド構成を選択します。

スキームをテストすると、デバッグとリリースの両方でソースをビルドし、デバッグ ビルド構成で単体テストを実行し、リリース構成でパフォーマンス テストを実行する必要があります。

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

それが役立つことを願っています。

于 2016-07-10T10:27:04.280 に答える
1

さまざまなテスト バンドルを使用して、必要なものを含めたり除外したりできます。

つまり、独自のカスタム テスト ターゲット (バンドル) を作成し、Xcode Test Navigator を使用するということです。

たとえば、MyUnitBundleTestsターゲットとターゲットを作成しMyPerformanceBundleTestsます。それらは、クラス、メソッドなどを含める/除外することを選択する2つの個別のテスト「バンドル」になります。

テスト ナビゲータには、プロジェクトに含まれるテスト バンドルと関連するクラス、メソッドなどの階層リストが表示されます。

テスト ナビゲーター リストの項目を Control キーを押しながらクリックし、ショートカット メニューから [有効化] または [無効化] を選択して、スキーム内の項目を有効または無効にすることで、テスト バンドル、クラス、およびメソッドを選択的に有効または無効にすることができます。

Xcode を使用したテスト - クイック スタート

Xcode を使用したテスト - テストの実行と結果の表示

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

ここに画像の説明を入力

これがあなたが望んでいるものかどうかはわかりませんが、Scheme Editor に行かずにテストするために私が考えることができる唯一のオプションです。

于 2016-07-09T04:44:01.623 に答える