Следует ли использовать pytest для интеграционного тестирования встроенной системы? - PullRequest
2 голосов
/ 02 июля 2019

Я работаю над настройкой новой инфраструктуры для модульных тестов и интеграционных тестов моей команды и хочу убедиться, что я начинаю с выбора правильных тестовых сред.Я - встроенный тестовый код разработчика, работающий в операционной системе VxWorks с производственной базой кода C / C ++.

Нам нужна платформа, способная непосредственно тестировать C / C ++ для модульного тестирования, поэтому для наших модульных тестов я выбрал Googletest в качестве нашей платформы.

Однако для интеграционных тестов мы обычно тестировали с использованием скриптов Python (без тестовой среды).Скрипты Python подключаются к встроенной системе по сети и тестируют кейсы, отправляя команды и получая телеметрию.

Будет ли использование pytest в качестве тестовой среды выгодно тому, как мы сейчас используем Python для интеграционного тестирования встроенной системы?Большинство примеров, которые я видел, используют pytest в более модульном тестовом стиле, создавая утверждения для отдельных функций в производственной кодовой базе Python.

РЕДАКТИРОВАТЬ: В соответствии с комментарием hoefling, я приведу (очень упрощенный) примеродного из наших существующих интеграционных тестовых примеров Python, а также того, что, как я считаю, соответствовало бы его реализации Pytest.

#Current example
def test_command_counter():
    preTestCmdCount = getCmdCountFromSystem()
    sendCommandToSystem()
    postTestCmdCount = getCmdCountFromSystem()

    if (postTestCmdCount != (preTestCmdCount + 1)):
        print("FAIL: Command count did not increment!")
    else:
        print("PASS")


#Using Pytest?
def test_command_counter():
    preTestCmdCount = getCmdCountFromSystem()
    sendCommandToSystem()
    postTestCmdCount = getCmdCountFromSystem()

    assert postTestCmdCount == (preTestCmdCount + 1)

Итак, поправьте меня, если я ошибаюсь, но кажется, что преимущества использования Pytestдля простого Python для этого упрощенного случая было бы:

  1. Возможность использовать автоматическое обнаружение тестовых примеров Pytest, так что я могу легко запускать все свои тестовые функции вместо необходимости создаватьпользовательский код для этого.

  2. Возможность использовать синтаксис «assert», который будет автоматически генерировать операторы «годен / негоден» для каждого теста, вместо необходимости вручную выполнять печать «годен / не годен»операторы для каждого теста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...