Pycharm и unittest не работают

у меня проблема с PYCharm 3.0.1 я не могу запускать базовые unittests.

вот мой код :

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()

вот все, что мне дал pycharm

не удалось подключить test reporter к test framework или test framework неожиданно выйти

тоже говорит

AttributeError: class TestLoader has no attribute '__init__'

и журнал событий:

2:14:28 PM Empty test suite

проблема в том, когда я запускаю вручную файл python (с pycharm, как скрипт)

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

FAILED (failures=1)

что нормально, я специально проваливаю тест. Я немного не понимаю, что происходит. здесь больше информации : Настройка - > интегрированные инструменты Python - >файл требований к пакету: / src / test Бегун теста по умолчанию: Unittests pyunit 1.4.1 установлен

Спасибо за любую помощь.

EDIT: то же самое происходит с основным использованием из 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 ответов


Это, вероятно, потому, что вы не правильно установили свою платформу тестирования в диалоге настроек.

enter image description here


хотя это было не так с оригинальным плакатом, Я хотел бы отметить, что еще одна вещь, которая вызовет это тестовые функции, которые не начинаются со слова "тест".'

class TestSet(unittest.TestCase):

    def test_will_work(self):
        pass

    def will_not_work(self):
        pass

определенно pycharm thingy, повторяя сверху,

  • Выполнить --> Изменить Конфигурации.
  • выберите экземпляры теста и нажмите красную кнопку минус.

у меня точно такая же проблема. Оказалось, что факт распознавания индивидуального теста был связан с имя файла. В моем случае, test_calculate_kpi.py, который PyCharm не распознал как тест при переименовании в test_calculate_kpis.py, был признан сразу.


4 шага для создания html-отчетов с PyCharm и большинством тестовых бегунов по умолчанию (py.испытание, nosetest, unittest etc.):

  1. убедитесь, что вы даете свои методы тестирования префикс 'test' (как указывалось ранее другими), например def test_run1()
  2. широко распространенный пример кода из документации пакета отчетов по тесту -

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

    этот код обычно находится в файле тестового класса, который содержит все unittests и "главный"ловец код. Этот код непрерывно выдавал предупреждение Empty test suite для меня. Следовательно,удалите все if _ _ name__ ... код. Теперь файл содержит только TestGoodnessOfFitTests класса. Теперь, дополнительно

  3. создать новый main.py в том же каталоге файла тестового класса и используйте следующий код:

     import unittest
     import HtmlTestRunner
     test_class = TestGoodnessOfFitTests()
     unittest.main(module=test_class, 
     testRunner=HtmlTestRunner.HTMLTestRunner(output='t.html'))
    
  4. удалите старые конфигурации запуска правой кнопкой мыши на main.py и нажмите Run 'main'. Проверьте правильные настройки в разделе Preferences -> Python Integrated Tools -> Default test runner (в моем случае py.тест и нос работали)

выход:

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... 

даже у меня была такая же проблема, я чувствовал, что рабочая область не была устранена. Даже я сделал файл - > синхронизировать (Ctrl+Aly+y). Но это не выход. Я просто переименовал имя тестового файла python и снова попытался выполнить код, он начал работать нормально.