Pycharm et unittest ne fonctionne pas

j'ai un problème avec PYCharm 3.0.1 Je ne peux pas exécuter les tests de base.

Voici mon code :

import unittest from MysqlServer import MysqlServer


class MysqlServerTest(unittest.TestCase):


    def setUp(self):
        self.mysqlServer = MysqlServer("ip", "username", "password", "db", port)


    def test_canConnect(self):
        self.mysqlServer.connect()
        self.fail()


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

Voici Tous les trucs pycharm me donner

impossible D'attacher le Rapporteur d'essai au cadre d'essai ou au cadre d'essai arrêter de façon inattendue

Est dit aussi

AttributeError: class TestLoader has no attribute '__init__'

Et le journal des événements :

2:14:28 PM Empty test suite

le problème est quand j'exécute manuellement le fichier python( avec pycharm, comme un le script)

----------------------------------------------------------------------
Ran 1 tests in 0.019s

FAILED (failures=1)

ce qui est normal, je fais échouer le test exprès. Je suis un peu paumé sur ce qui se passe ici plus d'informations : Paramètre->Python Intégré des Outils->le Paquet exigences fichier: /src/test Coureur de test par défaut: Unittests pyunit 1.4.1 est installé

Merci pour toute sorte d'aide.

EDIT: la même chose se produit avec l'utilisation de base de unitests.py

import unittest


class IntegerArithmenticTestCase(unittest.TestCase):
def testAdd(self):  ## test method names begin 'test*'
    self.assertEquals((1 + 2), 3)
    self.assertEquals(0 + 1, 1)

def testMultiply(self):
    self.assertEquals((0 * 10), 0)
    self.assertEquals((5 * 8), 40)


if __name__ == '__main__':
    unittest.main()
18
demandé sur drgn 2013-11-27 23:28:22

6 réponses

c'est probablement parce que vous n'avez pas défini correctement votre framework de test dans le dialogue Paramètres.

enter image description here

15
répondu Games Brainiac 2013-11-28 08:48:03

bien que ce n'était pas le cas avec l'affiche originale, j'aimerais noter qu'une autre chose qui va causer ceci sont des fonctions de test qui ne commencent pas avec le mot 'test.'

class TestSet(unittest.TestCase):

    def test_will_work(self):
        pass

    def will_not_work(self):
        pass
39
répondu binarysubstrate 2015-01-08 20:05:31

Certainement un pycharm truc, répéter à partir de ci-dessus,

  • Exécuter --> Modifier Les Configurations.
  • sélectionnez les instances du test, et appuyez sur le bouton rouge moins.
4
répondu shlomoa 2015-06-15 10:16:18

j'ai exactement le même problème. Il s'est avéré que le fait de reconnaître un test individuel était lié à la nom du fichier. Dans mon cas, test_calculate_kpi.py, que PyCharm n'a pas reconnu comme un test lorsqu'il a été renommé en test_calculate_kpis.py, a été immédiatement reconnu.

1
répondu MPacho 2018-02-28 19:02:42

4 étapes pour générer des rapports html avec PyCharm et la plupart des testeurs par défaut (py.test, nosetest, unittest etc.):

  1. assurez-vous de donner vos méthodes d'essai a préfixe 'test' (comme indiqué précédemment par d'autres), par exemple def test_run1()
  2. le code d'exemple répandu de la documentation du rapport d'essai est

    import unittest
    import HtmlTestRunner
    
    class TestGoodnessOfFitTests(unittest.TestCase):
    
     def test_run1(self):
      ...
    
    if __name__ == '__main__':
     unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='t.html'))
    

    ce code est habituellement situé dans un fichier de classe test qui contient tous les unittest et le "Main" - catcher code. Ce code a donné l'avertissement en continu Empty test suite pour moi. Par conséquent, supprimer tous les si __nom__ ... code. Le fichier ne contient le TestGoodnessOfFitTests classe. Maintenant, en outre

  3. créer un nouveau main.py dans le même répertoire de la classe de test de fichier et utiliser le code suivant:

     import unittest
     import HtmlTestRunner
     test_class = TestGoodnessOfFitTests()
     unittest.main(module=test_class, 
     testRunner=HtmlTestRunner.HTMLTestRunner(output='t.html'))
    
  4. Supprimer votre ancien exécuter les configurations clic droit sur votre main.py et appuyez sur la touche Run 'main'. Vérifier les paramètres corrects sous Preferences -> Python Integrated Tools -> Default test runner (dans mon cas py.essais et nez travaillés)--17-->

Sortie:

Running tests... 
----------------------------------------------------------------------
 test_gaussian_dummy_kolmogorov_cdf_1 (tests.evaluation_tests.TestGoodnessOfFitTests) ... OK (1.033877)s

----------------------------------------------------------------------
Ran 1 test in 0:00:01

OK



Generating HTML reports... 
0
répondu Fábio Ferreira 2018-01-17 09:04:19

même si j'ai eu le même problème, j'ai senti que l'espace de travail n'était pas correctement rafraîchi. Même moi J'ai fait fichier - > synchroniser(Ctrl+Aly+y). Mais ce n'était pas la solution. Je viens de renommer le nom de mon fichier Python test et j'ai encore essayé d'exécuter le code, ça a bien commencé.

0
répondu Kishor kumar R 2018-07-31 09:08:39