Как написать модульные тесты для инструмента командной строки Python
Я работаю над улучшением покрытия кода в проекте Python, но я не нашел хорошего примера того, как тестировать инструменты командной строки. Вот мой код:
https://github.com/OpenDataAlex/etlTest/blob/dev/etltest/etlTest.py
Я бы включил код в сообщение, но я не просто хотел опубликовать фрагмент. Я строю инструмент командной строки, который запускает другие компоненты проекта.
Тесты, которые я написал, похожи на следующий пример:
def test_in_file_custom_output_generation_output(self):
file_param = "-f {0:s}".format(self.in_file)
output_file = os.path.join(SettingsManager().get_file_location(),
'etltest/samples/output/main/in_file_generation.txt')
given_result = subprocess.check_output(args=['python', self.process, file_param, "-g"])
with open(output_file, 'r') as f:
expected_result = f.read()
self.assertEqual(given_result, expected_result)
def test_parser_no_args(self):
#Test if no args returns help options.
subprocess.check_output(args=['python', self.process], stderr=subprocess.STDOUT)
Я все еще новичок в написании тестов для такого проекта и буду признателен за некоторые рекомендации. Должен ли я использовать другой инструмент тестирования, такой как инструмент тестирования юнитов Python?