Как написать модульные тесты для инструмента командной строки 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?

0 ответов

Другие вопросы по тегам