Ответ 1
Вероятно, это связано с тем, что вы не настроили свою тестовую структуру правильно в диалоге настроек.
У меня проблема с 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()
Вероятно, это связано с тем, что вы не настроили свою тестовую структуру правильно в диалоге настроек.
Хотя это было не так с оригинальным плакатом, я хотел бы отметить, что еще одна вещь, которая вызовет это, - это тестовые функции, которые не начинаются со слова "тест".
class TestSet(unittest.TestCase):
def test_will_work(self):
pass
def will_not_work(self):
pass
Определенно, пикарм, повторяющийся сверху,
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...