Python unittest не запускает тесты

1

Я сделал небольшой проект под названием demo, с одним тестом в нем

import unittest


class Test(unittest.TestCase):


    def testName1(self):
        self.assertEqual(5+9, 14)


if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()

Однако из командной строки

ThinkPad-T520:~/workspacep/demo$ python -m unittest

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

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

Структура каталога

demo
    tests
          demo_test1.py  __init__.py
  • 1
    Можете ли вы поделиться структурой каталогов вашего проекта?
  • 1
    python test_demo.py
Показать ещё 3 комментария
Теги:
unit-testing
python-unittest

2 ответа

2
Лучший ответ

Некоторое время назад я сражался с одной и той же проблемой, и решил ее с помощью команды test discovery.

python -m unittest discover -s.

Вы также можете передать шаблон тестового файла и другие параметры https://docs.python.org/2/library/unittest.html#test-discovery

  • 0
    Разве по умолчанию не используется обнаружение, даже не передавая его явно в команде?
  • 0
    Кстати, это не удалось для меня, получил тот же результат, что и выше, Ran 0 тесты
Показать ещё 1 комментарий
1

Вам необходимо передать список модулей.

Например, если ваш тестовый файл - foo.py, вы можете запустить python -m unittest foo.

  • 0
    Нет, это то, чего я хочу избежать. Я хочу, чтобы он запускал все тесты в проекте. Предположим, что это огромный проект с сотнями модулей, я не хочу передавать их явно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню