web-dev-qa-db-ja.com

Xcode 7 UIテスト、録音ボタンがグレー表示される

Xcode 7を使用して、既存のプロジェクトにUIテストを追加しようとしています。ただし、UIテストの記録ボタンは常にグレー表示されています。ここで何が欠けていますか?

Xcodeの再起動、プロジェクトのクリーニングと再構築、および新しいUIテストターゲットの追加を試みました。他の誰かが同じ行動を経験しますか?

29
rustylepord

FWIW:この問題が発生したため、間違ったOSでシミュレーターを実行しようとしていました。

私はiOS8.xを使おうとしていましたが、UITestingはiOS9 +でのみ動作します。

シミュレーターのバージョンを切り替えると、記録ボタンが表示されます。

12
Le Mot Juiced

赤いボタンを有効にするには、テストメソッドにカーソルを置く必要があります。

enter image description here

36
pableiros

私もこれにしばらくはまりました。記録するためには、Xcodeがテストを含むと認識するクラスにいる必要があります。次のようなファイルをUIテストターゲットに追加します。

import Foundation
import XCTest

class MyTests: XCTestCase {
    func testSomething() {

    }
}

ファイルを保存し、プロジェクトをクリーンアップし、別のファイルに切り替えてからこのファイルに戻ります。記録ボタンが利用可能になります。

16
Maldron

私は同じ問題を抱えていて、セットアップが正しく、iOS> = 9.0、ターゲットが追加されました。

問題はXcodeのインデックス作成で、インデックス作成が完了するとしばらく(約1時間)かかり、録画ボタンがアクティブになりました。

12
toxicsun

Xcode 8.3でも同じ問題がありました。

tearDownメソッドを削除しました

   override func tearDown() {
        super.tearDown()

    }

使用する必要はなかったので。追加するとすぐに、記録ボタンが有効になりました。

5
Tal Zion

私にとっての問題は、「バージョンエディタ」ペインが開いていたことです。アシスタントエディターに戻るとすぐに機能しました。

4
Chase Holland

テストメソッドは、Xcodeがそれを認識し、カーソルがメソッド内にあるときに記録できるように、Word testで始まる必要があります。

Xcodeがメソッドを認識したことの1つの兆候は、メソッド名の左に表示される菱形です。

enter image description here

3
Manuel

これはちょっとばかげていますが、私が読んだ記事では見逃していました。

UITestingターゲットがあることを確認してください。通常のテストターゲットはそれをしませんでした。

3
leopic

バージョンエディタを確認して修正してください

enter image description here

enter image description here

2
Rajneesh071

ここにリストされていない別の解決策を見つけました。

XCTestCaseをサブクラス化する場合、クラスを再度継承するように変更しますファイルを保存、サブクラス名に戻します。クリーンまたはビルドは必要ありません。

私のプロジェクトでは、XCTestCaseのサブクラスを持っています。それをAPPMyTestCaseと呼びましょう。記録ボタンがグレー表示され、各テストメソッドの横にある小さな緑/赤のボタンが表示されず、個別に実行できない場合があります。サブクラスを再度XCTestCaseに変更すると、すべてが再び機能します。

これを変える:

class APPLoadingPageUITests: APPMyTestCase {
    // tests here
}

これに:

class APPLoadingPageUITests: XCTestCase {
    // tests here
}

そして、これに戻ります:

class APPLoadingPageUITests: APPMyTestCase {
    // tests here
}

これは私のためにそれを修正しました。

1
Gordonium

記録ボタンを有効にするためにいくつかのことを行いました。

  1. (オプション、推奨)-プロジェクトのすべてのTESTスキームとTESTターゲットを削除し、新しいUITestターゲットを作成して新たに始めます。
  2. UITestスキームとメインプロジェクト実行スキームが同じターゲットを指していることを確認してください。
  3. 他のUITestスキームを簡単に再作成できる/絶対的に重要でない場合は、削除してみてください。
  4. 製品>(Altキーを押したままにする)>ビルドフォルダーを消去する
  5. 製品>クリーニング(安全対策のため)
  6. プロジェクトを閉じて、Xcodeを終了します。
  7. シミュレーターを終了します。
  8. 最後に、Xcodeを再度開き、プロジェクトをロードします。 UITestファイルに移動すると、喜びの小さな赤いボタンが使用可能になります。

また、ビルド/実行ターゲットがiPhone X 9.Xに設定されていることを確認してください。

1
Frogger

馬鹿げた話ですが、別のファイルを選択する必要がありました左側のサイドバーから、テストケースとともにファイルに戻ります。その後、ボタンはすぐにアクティブになりました。

1
Tamás Sengel

ファイルごとにXCTestCaseのサブクラスを1つだけにしてください。ファイル名とクラス名を一致させる必要があります。

私の経験では、UIテストが機能している場合でも、同じファイルに作業中のXCTestCaseサブクラスの新しいサブクラスを追加すると、記録ボタンは無効になります(ただし、他のすべてのテストUIは機能し続けます)。

0
blackp

正しいスキームに切り替えるとすぐに戻ってきました。 UIテストレコーダは他のレコーダでは機能しないため、UI testingスキームを使用していることを確認してください。

0
Wills