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 ответов
Это, вероятно, потому, что вы не правильно установили свою платформу тестирования в диалоге настроек.

хотя это было не так с оригинальным плакатом, Я хотел бы отметить, что еще одна вещь, которая вызовет это тестовые функции, которые не начинаются со слова "тест".'
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.):
- убедитесь, что вы даете свои методы тестирования префикс '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__ ... код. Теперь файл содержит только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.тест и нос работали)
выход:
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 и снова попытался выполнить код, он начал работать нормально.
