J'essaie d'ajouter des tests d'interface utilisateur à mon projet existant à l'aide de Xcode 7. Toutefois, le bouton d'enregistrement de test d'interface utilisateur est toujours grisé. Qu'est-ce qui me manque ici?
J'ai essayé de redémarrer Xcode, de nettoyer et de reconstruire le projet et d'ajouter une nouvelle cible de test d'interface utilisateur. Est-ce que quelqu'un d'autre a le même comportement?
FWIW: J'ai eu ce problème et il s’avère que j’essayais d’exécuter le simulateur avec le mauvais système d’exploitation.
J'essayais d'utiliser iOS8.x et UITesting ne fonctionne que sur iOS9 +.
Basculez la version du simulateur et le bouton d'enregistrement apparaît.
Je suis resté coincé là-dessus pendant un moment aussi. Pour pouvoir enregistrer, vous devez appartenir à une classe reconnue par Xcode comme contenant des tests. Ajoutez un fichier à votre cible de test d'interface utilisateur avec quelque chose comme:
import Foundation
import XCTest
class MyTests: XCTestCase {
func testSomething() {
}
}
Enregistrez le fichier, nettoyez votre projet et passez à un autre fichier, puis revenez à celui-ci. Le bouton d'enregistrement devrait être disponible alors.
J'ai eu le même problème et ma configuration était correcte, iOS> = 9.0, la cible a été ajoutée.
Le problème était l'indexation Xcode qui a pris un certain temps (environ 1h). Une fois l'indexation terminée, le bouton d'enregistrement est activé.
Avait le même problème sur Xcode 8.3.
J'ai supprimé la méthode tearDown
override func tearDown() {
super.tearDown()
}
Comme je n'avais pas besoin de l'utiliser. Dès que je l'ai ajouté, le bouton d'enregistrement a été activé.
Pour moi, le problème était que le volet "Editeur de version" était ouvert. Dès que je suis retourné dans l'éditeur adjoint, cela a fonctionné.
C'est un peu bête, mais j'ai raté certains articles que j'ai lus.
Assurez-vous que vous avez une cible UITesting, une cible de test régulière ne me l'a pas faite.
J'ai trouvé une autre solution que je n'ai pas vue énumérée ici.
Si vous sous-classez XCTestCase
, modifiez votre classe pour qu'elle en hérite à nouveau, enregistrez le fichier , remettez-le à votre nom de sous-classe. Pas de nettoyage ou de construction nécessaire.
Pour mon projet, j'ai une sous-classe de XCTestCase
, appelons-le APPMyTestCase
. Je constate souvent que le bouton d'enregistrement est grisé et que les petits boutons verts/rouges situés à côté de chaque méthode de test n'apparaissent pas non plus pour ne pas pouvoir les exécuter individuellement. Si je modifie ma sous-classe à XCTestCase
pendant une seconde, tout fonctionne à nouveau.
Change ça:
class APPLoadingPageUITests: APPMyTestCase {
// tests here
}
Pour ça:
class APPLoadingPageUITests: XCTestCase {
// tests here
}
Et puis revenons à ceci:
class APPLoadingPageUITests: APPMyTestCase {
// tests here
}
Cela a résolu le problème pour moi.
J'ai fait quelques choses pour activer mon bouton d'enregistrement:
Assurez-vous également que votre cible de génération/exécution est définie sur iPhone X 9.X.
Assurez-vous de n'avoir qu'une seule sous-classe de XCTestCase
par fichier. Vous voulez que le nom de fichier et les noms de classe correspondent.
D'après mon expérience, même lorsque les tests d'interface utilisateur fonctionnent, si vous ajoutez une nouvelle sous-classe de votre sous-classe XCTestCase dans le même fichier, le bouton d'enregistrement sera désactivé (bien que toutes les autres interfaces de test continuent de fonctionner).
Il est immédiatement revenu quand je suis passé au bon schéma. Assurez-vous que vous êtes sur le schéma UI testing
, car l'enregistreur de test d'interface utilisateur ne peut fonctionner sur aucun autre.
Aussi bête que cela puisse paraître, je devais sélectionner un autre fichier dans la barre latérale à gauche et revenir à mon fichier avec les scénarios de test. Après cela, le bouton est immédiatement devenu actif.