44 votes

Comment exécuter un seul test case dans XCode?

Je sais que la meilleure pratique est d'exécuter tous les tests d'unités après toute modification pour s'assurer de ne rien casser. Cependant, parfois, par exemple, le débogage, je veux vraiment exécuter un seul cas de test. Il semble que XCode n'offre pas cette fonctionnalité dans l'interface utilisateur, alors que d'autres infrastructures de test telles que JUnit possèdent de telles fonctionnalités.

Existe-t-il une solution de contournement pour n’avoir qu’un seul cas de test exécuté en XCode?

PS la plupart de mes cas de test sont des tests logiques. Donc, ils ne sont pas exécutés dans un appareil iPhone.

50voto

adib Points 2315

XCode 4 a maintenant cette fonctionnalité. Créez simplement un "schéma d'exécution" contenant les scénarios de test que vous souhaitez exécuter.

  1. Ouvrir le menu Product|Edit Scheme...
  2. Cliquez sur Edit...
  3. Dans le volet de gauche, développez la section Test .
  4. Dans le volet de droite, développez l'ensemble de tests et décochez les scénarios de test que vous n'avez pas besoin d'exécuter.

37voto

Stuart Points 101

Vous pouvez également utiliser le raccourci clavier de Contrôle-Commande-Option-U

Expert prises à partir de la Documentation d'Apple

Produit > Action > De Test . Cette dynamique de l'élément de menu sens de la méthode d'essai dans lequel la modification du point d'insertion est placé lorsque vous modifiez la méthode de test et vous permet d'effectuer ce test avec un raccourci clavier. La commande du nom s'adapte à montrer que le test, il sera exécuté, par exemple, Produit > Action > Test testAddition. Le raccourci clavier est ctrl-Option-Commande-U.

13voto

Erik B Points 12343

Je suis sûr que personne n'a manqué la publication de Xcode 5 et sa capacité à exécuter facilement un seul cas de test, mais en ajoutant cette réponse uniquement par souci d'exhaustivité.

Dans Xcode 5, vous pouvez exécuter un seul cas de test en cliquant sur le petit bouton de lecture que vous pouvez trouver à côté du test dans le navigateur de test ou à côté de la méthode de test dans l'éditeur. Aux deux endroits, il apparaît lorsque vous la survolez.

0voto

phil Points 761

Comme vous l'avez constaté, le OCUnit framework de test de marques de méthodes dont le nom commence par 'test' comme des cas de test. Ceci est fait au moment de l'exécution

Dans la pratique, vos cas de test doit courir si vite qu'il ne devrait pas d'importance combien sont activés; votre débogueur doit être en mesure d'arrêter l'intérieur de votre cas de test très rapidement après que vous appuyez sur "Debug".

Cela étant dit, le moyen le plus rapide pour désactiver certains tests est probablement d'utiliser un #if 0 / #endif bloc. La fonction de désactivation de cas de test de façon dynamique n'existe pas dans Xcode / OCUnit, car il n'y a pas de composant d'interface graphique.

En théorie, il devrait être faisable, parce que au moment de l'exécution (et avant que tous les tests sont exécutés), il existe des moyens pour accéder à la liste de test dans OCUnit, mais cela nécessite des modifications à la OCUnit code source, ce qui n'est pas souhaitable (il sera détruit lors de la prochaine mise à jour de Xcode, pour l'un).

Enfin, si cette fonction est importante pour vous, vous pouvez facilement créer votre propre harnais de test que la plupart reproduit ce OCUnit n'. Ensuite, vous pouvez modifier le contenu de votre coeur, ajouter de l'INTERFACE utilisateur, etc.

Il n'est pas difficile, et un peu d'éducation. Voici un bon lien pour vous aider à démarrer:

http://gusmueller.com/blog/archives/2009/10/how_to_write_your_own_automated_testing_framework.html

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