Я сделал небольшой проект под названием 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
Некоторое время назад я сражался с одной и той же проблемой, и решил ее с помощью команды test discovery.
python -m unittest discover -s.
Вы также можете передать шаблон тестового файла и другие параметры https://docs.python.org/2/library/unittest.html#test-discovery
Вам необходимо передать список модулей.
Например, если ваш тестовый файл - foo.py
, вы можете запустить python -m unittest foo
.
python test_demo.py