Question

Je regarde les tests unitaires XCTest et Xcode 5 et je ne vois pas comment exécuter mes tests unitaires sous Instruments dans Xcode 5...

Plus précisément, j'aimerais rechercher des fuites pendant le test (cela n'a pas besoin d'être automatisé dans ce cas, même si cela serait clairement utile).

Possible?

Était-ce utile?

La solution

Je pense que c'est le moyen le plus simple:

  1. Définissez un point d'arrêt quelque part dans vos tests (je le fais dans la méthode de configuration)
  2. Ouvrez un nouveau document dans Instruments
  3. Exécutez l'application et assurez-vous qu'il est arrêté à un point d'arrêt
  4. à partir de la baisse de la cible dans les instruments Choisissez Joindre au processus et faites défiler jusqu'à votre processus
  5. Cliquez sur Enregistrer puis reprenez dans Xcode

Autres conseils

en Xcode, cliquez avec le bouton droit de la souris sur votre test dans le navigateur de test et sélectionnez "Profil" TestName "":

 Mémoire de test de l'unité de profil d'instruments

Voici la bonne façon de procéder sous Xcode 6 :

1) Dans votre projet Xcode, révélez le dossier "Produits", sélectionnez le produit ".xctest", faites un clic droit et enfin choisissez "Révéler dans le Finder" dans le menu contextuel.

2) Lancez Instruments et créez un nouveau document avec le modèle de votre choix.

3) Faites "Choisir la cible..." pour le document

4) Naviguez et sélectionnez l'outil utilisé par Xcode pour exécuter les tests situé à /Applications/Xcode.app/Contents/Developer/usr/bin/xctest (vous pouvez trouver cet emplacement en utilisant xcrun -f xctest dans Terminal) - vous devrez activer "Traverse Packages" pour naviguer dans l'application Xcode.

5) Faites glisser et déposez depuis le Finder dans le champ "Arguments" le produit ".xctest" révélé à l'étape 1 - cela entre dans son chemin absolu.

6) Cliquez sur "Choisir".

Vous êtes maintenant prêt à exécuter vos tests unitaires depuis Instruments !

enter image description here

I created a new target based on the mac app target I am testing, then added the xctest classes to the files to compile.

I then added the /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework to the frameworks to link against.

Then added its path $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks to the Runpath Search Paths.

Then in the main.m I added the following:

    XCTestSuite *suite = [XCTestSuite testSuiteWithName:@"My tests"];
    [suite addTest:[VideohogCachingTest testCaseWithSelector:@selector(testCompleteSequentialText)]];
    [suite run];

This ran the test testCompleteSequentialText on the class VideohogCachingTest I needed to run as a normal application, therefore allowing me to run the test by either command+R or in this case, profiling with command+I. I could then catch a zombie and trace the problem, which was not a possibility for me previously. If you'd like to run all your tests you can do:

XCTestSuite *suite = [XCTestSuite defaultTestSuite];
[suite run];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top