0
votes

Unittest a échoué dans Python Ide Pycham

J'ai essayé de faire un simple unit de Python, mais je ne sais pas pourquoi le test a échoué. J'ai fait trois fichiers:

  • name_function.py dans lequel j'ai une fonction qui reçoit deux paramètres ( prénom, nom de famille ) et renvoyer le nom concaténé. xxx
    • noms.py dans lequel l'utilisateur est invité à entrer le prénom et le nom de famille ou q pour arrêter de fumer. Après cela, la fonction get_formatted_name est appelée et nom de concaténée est imprimée. xxx
      • test_name_function.py où la fonction est testée. xxx
        • Dans cette fenêtre, je gère la commande cmd (voir Joindre capture_1 ).
        • dans cmd i exécute la commande (voir Joindre capture_2 et capture_3 ).
        • Je ne comprends pas où est mon erreur? En Capture_3, voir ce que j'obtiens quand j'exécute le test.
        • J'utilise Python 3.7.2 et le python IDE que j'utilise est Pycharas.

          capture_1 capture_2 capture_3


0 commentaires

3 Réponses :


1
votes

Votre code a l'air bien envers moi. Je l'ai couru sur ma machine et ça marche très bien. La seule chose que j'ai remarquée est python -m unitest code> ne trouve pas votre test. Une solution de contournement rapide consisterait à ajouter les éléments suivants à la fin de votre fichier unit.

if __name__ == '__main__':
    unittest.main()


1 commentaires

Je pense que le problème est que sans la garde, unitest.Main () est à nouveau appelé lorsque le fichier de test est importé et effectue un sys.exit (1) en interne, ce qui entraîne l'erreur.



0
votes

Depuis que vous avez une question à propos de Pycham spécialement, voici tout ce dont vous avez besoin pour cela:

  • Supprimez la dernière ligne du fichier de test de votre appareil: unitest.Main ()
  • ou faites ce que @zykerd a suggéré et la transformer en

    ceci: xxx

    • RightCliquez sur le test de Pycham et sélectionnez Exécuter des informations sur Test_Name_function

      Les deux travaux (c'est-à-dire sans l'appel à la principale, ou avec l'appel derrière la vérification du nom principal.


2 commentaires

Merci Grismar.


Vous êtes le bienvenu - Si la réponse répondit à votre question, veuillez l'accepter avec la coche de la question de la question de la réponse.



0
votes

C'est parce qu'il est supposé que vous exécutez sur l'interprète interactif et au point de l'exception, elle échoue avec un système SystemExit. Cependant, comme mentionné dans le commentaire de @zykerd, le xxx

ci-dessus résoudrait ce problème en supposant que le script est en cours d'exécution à partir de la ligne de commande au lieu de l'interprète interactif.

Acclamations!

Veuillez vérifier ici pour plus d'explication: Les tests réussissent, toujours obtenir Traceback


0 commentaires