2010-01-19 7 views
3

J'essaie de créer une nouvelle cible de génération de test unitaire pour mon application iPhone. Le problème que je rencontre est que les options d'adhésion à la cible de mon code source "groupe" sont grisées.L'appartenance de la cible est grisée (désactivée)

J'ai supprimé le dossier "Classes" d'origine et créé un nouveau dossier "SourceCode" avec une structure de disque réelle (merci xcode). Je l'ai importé en tant que groupe, pas un dossier. Il a été ajouté automatiquement aux sources de compilation de la cible de construction standard, mais je ne peux pas l'ajouter ou le faire glisser dans ma nouvelle cible.

Des pensées?

alt text http://img.skitch.com/20100118-mhurmqc33ecaq4xq3y2e5k3hs4.jpg

Répondre

1

La réponse de cdespinosa est sur la bonne voie, mais pas vraiment correcte. Les sources font vont dans la cible de test unitaire, mais vous devez seulement inclure celles couvertes par les tests. Je l'ai compris, et le problème est que si un groupe contient un fichier qui ne peut pas être inclus (fichiers d'en-tête par exemple), la boîte de dialogue Info n'est pas assez intelligente pour traiter uniquement ces fichiers et vous verrouille . Vous devez sélectionner manuellement chaque fichier .m, même si vous voulez tout inclure dans le groupe. Si vous avez un énorme projet, je vous suggère de créer un "groupe intelligent" (par opposition au "dumb group" normal de xcode), qui vous permettra de filtrer uniquement les fichiers .m.

Pourquoi demandez-vous? Pourquoi xcode est-il capable de comprendre cela lorsque vous importez un tas de fichiers, dont certains ne peuvent pas être inclus dans la construction, mais ne parviennent pas à faire la même distinction pour les fichiers existants? Bonne question. Par pour le cours xcode, imo.

+0

La réponse technique à votre dernière question est que le glisser-déposer est fait avec itération, alors que les inspecteurs sont basés sur des liens, et les inspecteurs ne valident que pour les tableaux où tous les éléments ont un mot de passe valide. En ce qui concerne les tests unitaires, vous avez raison, les tests d'unité d'application iPhone nécessitent l'ajout de sources d'application à la cible. Les tests unitaires Mac utilisent l'injection groupée et ne nécessitent pas les sources de l'application dans la cible de test unitaire. – cdespinosa

+0

Merci d'avoir clarifié cdespinosa. Je suppose que cela a du sens d'un point de vue fonctionnel, mais je pense toujours que Apple sacrifie la facilité d'utilisation pour la correction technique dans ce cas. Si je vérifiais l'inclusion d'un dossier dans une cible, je ne m'attendrais évidemment pas à ce qu'il inclue des éléments qui ne peuvent pas être inclus, et à être intelligent à ce sujet. Je n'ai rien à reprocher à ton propos, juste mon reproche de pomme. Merci encore. – DougW

1

D'abord, vos sources ne vont pas dans la cible de test unitaire. Seules les sources de test unitaires doivent elles-mêmes figurer dans cette cible. Deuxièmement, la phase de compilation Compile Sources ne peut pas créer un groupe, mais uniquement des fichiers individuels. Donc, je ne croirais pas que même si votre groupe est dans la cible, qu'il est dans la bonne phase de construction ou que ses sources seront compilées.

Décochez la cible pour en retirer le groupe, puis sélectionnez les fichiers source et faites-les glisser sur la cible.

Questions connexes