44 votes

Xcode 5 indique que les tests ont échoué mais que des coches vertes sont cochées

J'ai écrit quelques tests unitaires dans le nouveau framework XCTest de Xcode 5.

Les tests semblent réussir la plupart du temps, mais j'ai rencontré un comportement étrange: si j'exécutais les tests plusieurs fois de suite, un message "test échoué" s'affiche et la console affiche Program ended with exit code 0 , mais il y a des coches verts à côté de tous les tests.

Qu'est-ce qui ne va pas ici?

17voto

squarefrog Points 1473

C'est définitivement un bug. Soumettez un rapport via https://bugreport.apple.com/ n'hésitez pas à faire référence à mon rapport (15251050).

2voto

ansible Points 1923

Build Clean a fonctionné pour moi… parfois de toute façon. Produit -> Clean.

2voto

willc2 Points 8732

Jusqu'à ce que le bogue soit corrigé, fermez le projet et rouvrez-le.

1voto

Michal K. Points 852

Si vous chercher à la sortie de la console, vous devriez remarquer que Xcode commence à courir à la suite de tests:

Test Suite 'SomeClassTests' started at 2013-11-30 23:19:34 +0000

mais tout à coup les sorties sans exécuter les cas de test:

Program ended with exit code: 0

et affiche une notification indiquant que le test a échoué.

Le redémarrage de Xcode permet temporairement le problème vient vite de retour.

J'ai arrêté l'exécution de tests dans Xcode et exécuter tous les tests en ligne de commande à l'aide de xctool.

1voto

RyanM Points 1369

Pour moi, je pense que ce problème était lié à une mauvaise OCMock de configuration. Retrait OCMock (complètement) et de l'ajouter au projet exactement comme recommandé par OCMock semble avoir fixé.

Un couple de choses spécifiques que je fait de mal:

  1. J'ai été en utilisant #import "OCMock.h au lieu de #import "OCMock/OCMock.h. Xcode complété automatiquement l'ancien.
  2. J'ai eu une mauvaise liaison de restes dans la bibliothèque des chemins de recherche de déjà essayer d'installer OCMock avec une structure de répertoire différent.
  3. C'est idiot, mais en essayant de corriger de cette question, j'ai commenté l'instanciation de ma OCMockObject dans ma méthode de configuration.. et ne me souviens pas de décommenter il. Le néant OCMockObject causé le même comportement que décrit dans les autres réponses ici. C'est bizarre.. Dans mon projet actuel, j'ai deux essais qui utilisent le OCMockObject est instancié dans mon installation. Les deux doivent échouer. Cependant, l'un d'eux passe, et la seule différence que je vois entre les deux est que l'un qui est de passage précédemment passe légitimement...

De toute façon, avec OCMock installation correctement mes tests fonctionnent comme ils le devraient

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X