J'ai eu un
Aucun test n'a été trouvé
erreur dans Pycharm et je ne comprends pas pourquoi je l’obtiens ... voici ce que j’ai pour mon point_test.py
:
import unittest
import sys
import os
sys.path.insert(0, os.path.abspath('..'))
from ..point import Point
class TestPoint(unittest.TestCase):
def setUp(self):
pass
def xyCheck(self,x,y):
point = Point(x,y)
self.assertEqual(x,point.x)
self.assertEqual(y,point.y)
et ce point.py
, ce que j'essaie de tester:
import unittest
from .utils import check_coincident, shift_point
class Point(object):
def __init__(self,x,y,mark={}):
self.x = x
self.y = y
self.mark = mark
def patched_coincident(self,point2):
point1 = (self.x,self.y)
return check_coincident(point1,point2)
def patched_shift(self,x_shift,y_shift):
point = (self.x,self.y)
self.x,self,y = shift_point(point,x_shift,y_shift)
Est-ce que quelque chose ne va pas avec ma configuration d'exécution? J'ai regardé ceci SO post, mais je suis encore complètement confus. Ma configuration d'exécution ressemble actuellement à ceci:
Je suppose que je comprends juste ce que je pourrais faire mal? Toute aide serait grandement appréciée, merci!!
pour reconnaître les fonctions de test, elles doivent être nommées test_
dans votre cas, renommez xyCheck
en test_xyCheck
:)
Je sais que la question a été posée il y a plus d'un an, mais j'avais le même problème et ce message était le premier résultat de la recherche.
Si j'ai bien compris, PyCharm (ou le plug-in Intellij Idea Python) a besoin que votre test réponde aux critères suivants si vous souhaitez le lancer lorsque vous exécutez tous les tests du répertoire.
J'utilise Intellij IDEA 2016.3.5 avec le plugin Python
Si vous voulez exécuter vos tests avec la ligne de commande
python -m unittest
Ensuite, vous devriez ajouter __init__.py
au répertoire test. Python veut toujours que vos noms de fonction de test commencent par "test", et vous testez le nom de fichier pour commencer par "test", mais dans le cas de fichiers, le fait que le premier "t" soit indifférent est indifférent. TestCase et test_case conviennent également.
Vous voudrez peut-être vérifier si vous voyez dans la sortie de la console " ## tests désélectionnés par '-k XXXX' ". Cela signifie que vous avez ajouté Keyword à la configuration Run/Debug, et que Pycharm n'exécutera que les tests dont le nom contient le mot clé.
Un autre truc qui vient de me mordre.
J'ai eu un fichier de test dans mon paquet de test appelé test_queue.py
qui a suivi tous les conseils ci-dessus, cependant lorsque j'ai sélectionné "Run UnitTests" dans PyCharm, la console n'a signalé aucun test trouvé.
Le problème dans mon cas était que j'avais un fichier de test non-unité à la racine du projet, également appelé test_queue.py
, qui avait été utilisé à une autre fin au début du projet et qui avait été oublié.
Même si je sélectionnais spécifiquement le fichier de test dans mon dossier de tests et que le chemin était défini pour pointer absolument vers la version de test unitaire du fichier, il semble que le fichier situé à la racine du projet était utilisé.
Donc, encore une chose à vérifier, assurez-vous qu'il n'y a pas d'autres fichiers dans votre projet avec le même nom.
N'utilisez pas de tirets ("-") dans votre nom de fichier. Ces fichiers étaient ignorés sur ma machine. en les renommant de project-tests.py à project_tests.py a résolu le problème.
Ajouter une autre réponse dans l’espoir que cela aide quelqu'un au bout du chemin. Je me suis battu contre ce problème et j'ai juste trouvé la réponse (je pense). À l'origine, j'avais supprimé le fichier Django standard tests.py de mon dossier d'application. J'ai également créé un sous-répertoire de mon projet appelé tests, qui contient des scripts de test distincts. Dans cette situation, Pycharm n'a pas réussi à trouver les tests. J'ai corrigé cela simplement en créant un fichier vide appelé tests.py dans mon dossier d'application.
Alors:
Voici une image de la structure de répertoire qui fonctionne pour moi:
J'ai eu cette exception lors de l'exécution de tests individuels dans un projet Django 1.8 dans PyCharm 2018.1. Je pouvais exécuter tous les tests ensemble, mais des tests individuels dans un fichier se sont écrasés.
L'exception se passait dans loader.py de unittest
Une erreur ImportError tentait d'importer test_admin_views.py, même si l'exception masquait les détails de cette erreur.
Pour voir les détails de ImportError, j'ai ouvert une console Python et lancé:
import my_app.users.tests.test_admin_views
Cela m'a donné:
Traceback (most recent call last):
[...]
File "my_app/my_app/users/tests/model_factories.py", line 42, in <module>
from my_app.applications.tests.model_factories import ApplicationFactory
ImportError: cannot import name ApplicationFactory
J'ai remarqué que certaines des autres usines de ce fichier sont importées sans utiliser le chemin d'accès complet. J'ai donc essayé d'ajouter ApplicationFactory à la liste d'importation de chemins d'accès relatifs:
from .model_factories import UserFactory, UserGroupFactory, ApplicationFactory
Ce qui a fonctionné!