Подтвердить что ты не робот

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

Вот все, что пишарм дает мне

Невозможно подключить тест-репортер для проверки фреймворка или тестовой среды неожиданно

Также говорит

AttributeError: class TestLoader has no attribute '__init__'

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

2:14:28 PM Empty test suite

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

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

FAILED (failures=1)

Что нормально, я делаю тест неудачным по назначению. Я немного не понимаю, что происходит здесь дополнительная информация: Настройка- > Python INtegrated Tools- > Файл требований к пакетам:/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()
4b9b3361

Ответ 1

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

enter image description here

Ответ 2

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

class TestSet(unittest.TestCase):

    def test_will_work(self):
        pass

    def will_not_work(self):
        pass

Ответ 3

Определенно, пикарм, повторяющийся сверху,

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

Ответ 4

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

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

    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__... code. Теперь файл содержит только класс TestGoodnessOfFitTests. Теперь дополнительно

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

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

Выход

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