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()
6 réponses
c'est probablement parce que vous n'avez pas défini correctement votre framework de test dans le dialogue Paramètres.
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
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.
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.
4 étapes pour générer des rapports html avec PyCharm et la plupart des testeurs par défaut (py.test, nosetest, unittest etc.):
- 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()
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 leTestGoodnessOfFitTests
classe. Maintenant, en outrecré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'))
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 sousPreferences -> 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...
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é.