2 votes

iPhone XCode Unit test framework build settings

J'essaie d'ajouter un test unitaire à mon projet, voici ce que je fais :

  1. Ajouter une cible -> Bundle de test unitaire Cocoa Touch
    product : AuthyTests
    company Identifier: com.authy.com
    project : authy

    L'identifiant du bundler résultant est donc : com.authy.AuthyTests

  2. si je lance commande+U(Produit -> test) cela fonctionne les tests unitaires sont exécutés.

  3. Maintenant j'ajoute une bibliothèque de mon projet donc #include "otp.h" AuthyTests.h

  4. Ajouter un appel à AuthyTest.m ( [Otp foo]; ) et je reçois une erreur :

    Undefined symbols for architecture i386: "_OBJCCLASS$_Otp", referenced from: objc-class-ref in AuthyTests.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Des choses que j'ai essayées :

J'ai essayé d'ajouter authy.app comme une dépendance sur TargetDependencies de AuthyAppTests Build Phases.

2.Targets -> AuthyTests -> BuildSettings -> Build Active Architechture Only -> Oui

J'utilise xcode 4.2. J'ai également tout essayé sur ce site :
http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/

Que me manque-t-il pour mettre en place des UnitTests sur XCode ?

3voto

Michael Petrov Points 1659

Il semble que l'une des étapes du tutoriel n'ait pas été suivie. Plus précisément, les étapes 4 à 6. Je pense que les deux paramètres du chargeur de paquets ne sont pas corrects. Une autre possibilité à essayer :

Dans la cible principale de votre application Authy :

  • changer le paramètre de construction Architectures en :
    • i386
    • armv6
    • armv7
  • Changez également "Construire uniquement des architectures actives" en "Non".

L'un d'eux devrait forcer le binaire principal d'Authy à avoir i386. Si cela ne fonctionne toujours pas, alors ce sont les paramètres du chargeur de paquets qui se comportent mal.

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