web-dev-qa-db-fra.com

'NSInternalInconsistencyException' lors de l'exécution de UITesting avec Xcode 7

Ok, je n’ai pas pu faire ce test dans aucune version bêta jusqu’à présent. Certains des problèmes que j'ai rencontrés sont ici et ici

Maintenant, je sens que je manque quelque chose. 

Voici mes progrès jusqu'ici

  1. Activation de l'option «test de l'interface utilisateur» lors de la création d'un nouveau projet. Cela ajoute en fait une cible pour moi. Donc je devrais être bon pour aller - ou alors j'ai pensé.  enter image description here
  2. Le fichier Swift sous UI Testing avait déjà importé «XCTest» et constituait une sous-classe de «XCTestCase». 
  3. setup () lance l'application XCUIApplication (). launch ()
  4. Et j'ai ajouté ce qui suit (en appuyant sur le bouton Enregistrer)  enter image description here

Et puis, j'ai couru ce test. 

Le tout échoue même avant l'appel du test, juste après le lancement de l'application dans setup () avec le suivant

*** Échec d'assertion dans - [XCUIApplication init],/Library/Caches/com.Apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Testing/XCUIApplication.m: 76 /Users/UserName/Documents/Projects/Testing/UiTesting/UITestingApp/UITestingApp.Swift:0: error: - [UITestingApp.UITestingApp testSimpleTap]: a échoué: a capturé "NSInternalInconsistencyException", "Aucun chemin d'application cible spécifié via la configuration de test: 
testBundleURL: file: /// Users/UserName/Library/Developer/CoreSimulator/Devices/E3201DC2-CAD3-48C3-95F5-15E18DCA1836/data/Conteneurs/Bundle/Application/8B33FC59-FC03-41F8-BD21-43D81BA81D355/UIT-R. .app/PlugIns/UITestingApp.xctest /
productModuleName: (null) testsToSkip: (null) testsToRun: (null) reportResultsToIDE: no sessionIdentifier: <__ NSConcreteUUID 0x7f93e146c0b0> F242796B-ED26-4AA7-861A-540D2D93CB8F pathToXcodeReportingSocket: (null) disablePerformanceMetrics: no TreatMissingBaselinesAsFailures: no baselineFileURL: (null) targetApplicationPath: (null) targetApplicationBundleID: (null) reportActivities: non

Quelqu'un at-il eu à faire ou a des suggestions sur ce qui pourrait me manquer?

Remarque: j'ai défini l'application cible de la cible de test de l'interface utilisateur sur mon application.

Mise à jour: j'ai remarqué que cela s'applique à toutes les versions bêta/finales de Xcode - titre mis à jour en conséquence 

31
SuPotter

Après des ajustements sans fin, modifions l'emplacement de "Données héritées" dans "Préférences Xcode" de "Héritage" en "Personnalisé" et tout fonctionnait! 

 enter image description here

2
SuPotter

J'ai eu un problème similaire et mon erreur était d'essayer d'utiliser du code de test d'interface utilisateur dans une cible de test régulière. Une fois que j'ai créé une nouvelle cible, en commençant par "iOS UI Testing Bundle" et en copiant le code, l'erreur a disparu. Voici le fil qui m’a orienté dans la bonne direction: https://Twitter.com/punksomething/status/609505357132500993 } _ cible de test. Devait créer une cible de test d'interface utilisateur nouvellement ajoutée "

36
Matt Bearson

Cela m’est arrivé lorsque j’essayais d’ajouter une nouvelle classe à ma cible de test unitaire, mais j’ai sélectionné un modèle de classe de cas de test d’interface utilisateur au lieu du modèle de classe de cas de test unitaire. 

Assurez-vous de toujours choisir celui qui convient. Même s’ils appartiennent à la sous-classe XCTestCase et que vous les affectez à la bonne cible, cette erreur sera générée lors de la sélection du mauvais modèle.

 enter image description here

17
Viktor Kucera

Je l'ai eu après avoir renommé ma cible. La solution consistait à définir "Application cible" sur "Aucune" dans ma cible UITest et à créer. Après cela, je règle "Aucune" sur mon application et l'erreur résolue. Je pense qu'il est fort possible que le changement de nom ait gâché les paramètres "Application cible" de la cible de test ui 

4
TibiUr

Je reçois l'assertion 

*** Échec d'assertion dans - [XCUIApplication init],/Library/Caches/com.Apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Test/XCUIApplication.m: 76

régulièrement, comme décrit également dans d’autres réponses. Vraiment ennuyeux, et il m'a fallu un certain temps pour trouver les étapes minimales pour m'en débarrasser.

La solution clé que j'ai trouvée consiste à redémarrer votre appareil. Donc, vous n'avez pas besoin de supprimer l'application, de redémarrer Xcode ou autre chose, un simple redémarrage devrait faire disparaître cette assertion.

4
Samuël

J'ai eu ce problème exact. Je pense que le problème vient de renommer une cible en cours de route. Aucun des correctifs ici ne m'a aidé avec mon problème. Comme je venais juste de commencer et que je n'avais encore écrit aucun test, j'ai supprimé la cible entière pour les tests d'interface utilisateur et je l'ai rajoutée. Même nom et tout a commencé à bien fonctionner.

Si vous rencontrez ce problème, il est possible que cela soit dû au nom. Vous pouvez le suivre de cette manière ou enregistrer vos tests et rajouter une cible d'interface utilisateur.

3
Bill Burgess

J'obtenais cette erreur après avoir écrit quelques tests et les avoir exécutés. J'ai essayé tous les correctifs et suggestions postés mais aucun d'entre eux n'a fonctionné pour moi. 

J'ai décidé de supprimer l'application XCUI créée à chaque fois que vous exécutez des tests et redémarrez mon appareil, et cela a fonctionné. Cependant, si je lance les tests 7 ou 8 fois après, l'erreur revient et je répète simplement le cycle de la solution. Si vous supprimez simplement l'application et ne redémarrez pas, cela ne fonctionnera pas. 

Je ne sais pas si cette réponse fonctionnera pour tout le monde mais c'est ce qui a fonctionné pour moi. 

2
Bori Oludemi

Cela a fonctionné pour moi après avoir commenté le code ci-dessous dans la méthode setup () de ma TestCaseClass 

continueAfterFailure = false & XCUIApplication (). launch ()

1
Ranganatha G V

Supprimer la cible existante et créer à nouveau résout le problème.

Assurez-vous que vous sélectionnez le bon test. Pour les tests d'interface utilisateur, il devrait correspondre à " iOS UI Testing Bundle ".

1
arango_86

J'ai eu ce problème en cours d'exécution des tests Cucumberish sur xCode 8.

J'ai corrigé en allant dans Projet (dans le navigateur de projet)> MyTestTarget> Général

Assurez-vous ici que l'application cible est définie sur l'application pour laquelle vous souhaitez exécuter les tests. Par défaut, il a été défini sur Aucun.

0
Dev2rights