2016-02-03 4 views
16

からiOSアプリのための個々のXCTest(UI、ユニット)のテストケースを実行するから、代わりにすべてのテストケースで、iOSのアプリのテスト対象から、個々のテストケース、または個々のテストスイートを実行することが可能ですコマンドラインインターフェイス?は、コマンドライン

あなたは箱から出して、xcodebuildでコマンドラインからテストを実行することができます。これを行うと、選択したテストターゲットに含まれているすべてのテストケースが実行されます。

Fastlaneのscanでも可能ですが、上記のように選択したビルドスキームのテストをすべて実行することに制限されていると思いますが、xcodebuildと違いはありません。

Facebookからxctoolで特定のテストを実行することはできますが、xcodebuildは使用せず、実際のiOSテストデバイスではなく、シミュレータでのみ実行できます。

私が直接xctestコマンドラインユーティリティを実行しているへの参照を見つけたが、文書化されていない機能のようだとDerivedDataを対象としています。これは、UIテスト、have their *xctest files in a separate XCTRunner bundleという事実によって複雑になります。あなたが側溝に横にダイヤモンドをクリックすることができ、個々のテストやテストクラスを実行するには

+0

を使用すると、特定のUIテストを実行するにはxctoolに例を持っている必要がありますか? – emoleumassi

+0

@emoleumassi xctoolには、個別のテストファイル(スイート)とテストメソッド(ケース)を一度に実行できるようにするための "-only"オプションがあります。単体テストで動作し、UIテストでも同じことをすると仮定します。シミュレータではなく、実際のデバイスで実行するテストソリューションが必要なので、私はそれを自分で試していないので、xctoolは解決策ではありません。 –

+1

xctoolはUIテストをサポートしていません。この回答を参照してください:http://stackoverflow.com/questions/35181126/xctool-error-build-tests-is-not-a-testing-target-in-this-scheme/35196209 #35196209 – emoleumassi

答えて

53

それはこのビデオはXCode 8.チェック可能になりました:

https://developer.apple.com/videos/play/wwdc2016/409/ enter image description here

+1

パーフェクト。スクリーンショットをありがとう。また、私にとっては、元の 'test'アクションのコンポーネント、つまり' build-for-testing'と 'test-without-building'を分割する新しいxcodebuildアクションがあることも私には分かりました。 。後者は、毎回ビルドのオーバーヘッドなしでテストを複数回実行したい場合に便利です。必要な場合は、Mavenのライフサイクルフェーズに合わせるのにも最適です。 –

+2

'xcodebuild test -workspace -scheme -estest -only-testing:TestBundle/TestSuite/TestCase' – plosco

3

。オンにすると、行番号が表示される場所のすぐ隣に表示されます。

このスクリーンショットで私のマウスは、ダイヤモンドの上にマウスを移動しています。どのようにそれが実行されることを示す小さな再生矢印に変更されていることに注目してください。

Hovering Over the Test Diamond

その後、^⌥⌘Gで最近実行テスト(複数可)を再実行することができます。私の知る限り、これはxcodebuildを介して行うことはできません知っているよう

+2

私は元の質問を明確にしました。主な目的は、個々のテストケースをコマンドラインから起動できるかどうかを尋ねることでした。そのため、ターゲット全体ではなくテストのサブセットのみを呼び出す継続的な統合が可能でした。 –

+0

@ dasdomの答えをご覧ください。この正確な機能を追加しようとしているSwiftメーリングリストには、いくつかの議論があります。 –

+0

あなたはOPの質問に答えなかったが、これはちょうど_my_質問だった、本当にあなたの答えをありがとう! –

17

特定のテストのみを実行するようにスキームを編集できます。スキームを選択し、次にスキームを編集します。表示されるウィンドウで、テストフェーズを選択し、個々のテストを無効/有効にします。

enter image description here

また、テストのサブセットを実行するためのスキームを追加することができます。コマンドラインからテストを実行する場合、テストに使用するスキームを指定できます(少なくともファストレーンでは)。

+0

の100個のサブセットのテストには、100個のスキームがあります。良いシミュレータはありません。私は環境変数で他のものを好む。 – emoleumassi

5

私はあなたと同様の状況にあり、私が望むテストケースのセットをトリガするpythonスクリプトをビルドしました。その少し複雑なプロセスですが、私にとってはうまくいき、DataProviderメソッドの実装、失敗したテストケースの再実行、および必要なカスタマイズを経て、非常に役立っています。

達成したいことに関するいくつかの関連手順。下記行うにXCTestCaseに存在

  1. オーバーライドtestInvocations方法私は環境変数のXXXXを読んで、この方法では
    • を繰り返します。
    • この環境変数は、基本的にコンマ区切りのテストケースメソッド名です。
    • トリガーするテストメソッドごとにNSInvocationsを作成します。
    • 呼び出しの配列を返します。
  2. 環境変数を渡す方法は?
    • スキームでは、XXXXという名前の環境変数を追加します。
    • スキームファイルは標準XMLファイルです。環境変数にカンマ区切りの値を含むようにスキームファイルを変更するスクリプトを作成します。

あなたはより多くの情報が必要な場合、私はそれに返信しますコメントを追加します。

関連する問題