Xcode 7を使用して、既存のプロジェクトにUIテストを追加しようとしています。ただし、UIテストの記録ボタンは常にグレー表示されています。ここで何が欠けていますか?
Xcodeの再起動、プロジェクトのクリーニングと再構築、および新しいUIテストターゲットの追加を試みました。他の誰かが同じ行動を経験しますか?
FWIW:この問題が発生したため、間違ったOSでシミュレーターを実行しようとしていました。
私はiOS8.xを使おうとしていましたが、UITestingはiOS9 +でのみ動作します。
シミュレーターのバージョンを切り替えると、記録ボタンが表示されます。
私もこれにしばらくはまりました。記録するためには、Xcodeがテストを含むと認識するクラスにいる必要があります。次のようなファイルをUIテストターゲットに追加します。
import Foundation
import XCTest
class MyTests: XCTestCase {
func testSomething() {
}
}
ファイルを保存し、プロジェクトをクリーンアップし、別のファイルに切り替えてからこのファイルに戻ります。記録ボタンが利用可能になります。
私は同じ問題を抱えていて、セットアップが正しく、iOS> = 9.0、ターゲットが追加されました。
問題はXcodeのインデックス作成で、インデックス作成が完了するとしばらく(約1時間)かかり、録画ボタンがアクティブになりました。
Xcode 8.3でも同じ問題がありました。
tearDown
メソッドを削除しました
override func tearDown() {
super.tearDown()
}
使用する必要はなかったので。追加するとすぐに、記録ボタンが有効になりました。
私にとっての問題は、「バージョンエディタ」ペインが開いていたことです。アシスタントエディターに戻るとすぐに機能しました。
これはちょっとばかげていますが、私が読んだ記事では見逃していました。
UITestingターゲットがあることを確認してください。通常のテストターゲットはそれをしませんでした。
ここにリストされていない別の解決策を見つけました。
XCTestCase
をサブクラス化する場合、クラスを再度継承するように変更しますファイルを保存、サブクラス名に戻します。クリーンまたはビルドは必要ありません。
私のプロジェクトでは、XCTestCase
のサブクラスを持っています。それをAPPMyTestCase
と呼びましょう。記録ボタンがグレー表示され、各テストメソッドの横にある小さな緑/赤のボタンが表示されず、個別に実行できない場合があります。サブクラスを再度XCTestCase
に変更すると、すべてが再び機能します。
これを変える:
class APPLoadingPageUITests: APPMyTestCase {
// tests here
}
これに:
class APPLoadingPageUITests: XCTestCase {
// tests here
}
そして、これに戻ります:
class APPLoadingPageUITests: APPMyTestCase {
// tests here
}
これは私のためにそれを修正しました。
記録ボタンを有効にするためにいくつかのことを行いました。
また、ビルド/実行ターゲットがiPhone X 9.Xに設定されていることを確認してください。
馬鹿げた話ですが、別のファイルを選択する必要がありました左側のサイドバーから、テストケースとともにファイルに戻ります。その後、ボタンはすぐにアクティブになりました。
ファイルごとにXCTestCase
のサブクラスを1つだけにしてください。ファイル名とクラス名を一致させる必要があります。
私の経験では、UIテストが機能している場合でも、同じファイルに作業中のXCTestCaseサブクラスの新しいサブクラスを追加すると、記録ボタンは無効になります(ただし、他のすべてのテストUIは機能し続けます)。
正しいスキームに切り替えるとすぐに戻ってきました。 UIテストレコーダは他のレコーダでは機能しないため、UI testing
スキームを使用していることを確認してください。