2010-10-18 9 views
0

Salut mon application fonctionne très bien mais quand je tente d'exécuter les tests unitaires que je reçois cette erreur ...erreur de compilation pour le test de l'unité en utilisant la boîte à outils Google pour mac

2010-10-19 00:27:49.919 AssignmentUnitTest[27988:903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'*** -[NSURL initFileURLWithPath:]: nil string parameter' 

Irony est que j'ai recherché l'ensemble du projet & Je n'ai pas de ligne de code similaire qui utilise **[NSURL initFileURLWithPath:]**

J'ai perdu la moitié de ma journée sans succès.

J'utilise coredata dans le projet & ci-dessous est la capture d'écran avec trace de pile.

Quelqu'un peut-il s'il vous plaît me guider dans la bonne direction.

Merci screen shot

** EDIt: ** La solution à ce problème consiste à ajouter non seulement le fichier .xcdatamodel mais le fichier racine .xcdatamodeld. Les données de base ont eu du mal à trouver mon modèle et affichaient donc cette erreur. J'espère que ça aide quelqu'un un jour.

Répondre

1

Lisez la pile d'appels dans votre capture d'écran. Il dit que votre méthode managedObjectModel a envoyé [NSURL fileURLWithPath:], et que appelé initFileURLWithPath:. Donc, trouvez le point où vous avez envoyé [NSURL fileURLWithPath:] et corrigez votre argument à ce message. L'argument que vous avez passé étant invalide suggère que vous avez passé nil pour le chemin (vous avez peut-être essayé de trouver le fichier dans votre bundle mais il n'est pas là ou a un nom différent de celui recherché), ou vous avez réussi un pointeur vers un objet qui n'est pas une chaîne (peut-être avez-vous une chaîne mais vous l'avez sous-conservée et un objet différent a été créé à sa place).

+0

Merci Peter, vous êtes devenu mon sauveur. .. Par vos commentaires, j'ai réalisé que ma cible de test unitaire avait du mal à trouver mon modèle de données. J'avais précédemment ajouté le fichier .xcdatamodel à la cible de test unitaire, donc je l'ai enlevé et ajouté le fichier racine .xcdatamodeld & maintenant les tests unitaires ont commencé à fonctionner normalement ... –

1

Il y a un bogue dans certaines version du SDK qui a brisé la gestion des exceptions dans le simulateur.

Pouvez-vous exécuter les tests sur un périphérique?

+0

J'ai un iPhone 3G mais je ne l'ai pas mis à niveau vers iOS 4.x. Donc, le fonctionnement sur l'appareil n'est pas possible actuellement ... & mes profils d'approvisionnement sont obsolètes ... –