Как повторить тест R на этот тест на ошибку API? - PullRequest
1 голос
/ 06 октября 2019

Некоторые тесты опираются на некоторые внешние сервисы (например, API). Иногда эти внешние сервисы выходят из строя. Это может привести к сбою тестов и (что еще хуже) к инструментам непрерывной интеграции.

Есть ли способ проинструктировать testthat тесты и обычные примеры пакетов повторно запускать примеры / тесты более одного раза, в идеале, если вторая попытка будет через 5 минут после первой?

1 Ответ

1 голос
/ 06 октября 2019

В идеале вы должны писать свои тесты так, чтобы они не вызывали API или базу данных.

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

Вот пример пакета, который позволяет вам сделать это:

https://github.com/nealrichardson/httptest

Если вы беспокоитесь, что ваш поставщик может изменить API, поговорите с ними и извлекитеподробности об их управлении изменениями API.

Задайте им вопрос:

Каков ваш процесс управления изменениями? Как избежать внесения изменений в существующие конечные точки, которые используют люди?

(изменено из этого post )

Если вынужно проверить, что API все тот же, провести границу между проверкой API и тестированием вашего кода.

Вам понадобятся два отдельных процесса:

  • Модульные / приемочные тесты, которые выполняются на макетах конечных точек API. Они работают быстро и сосредоточены на логике вашего приложения.

  • конвейер для регулярной проверки API. Если ваш код уже работает, вы, скорее всего, обнаружите какие-либо критические изменения в API. Так что это очень избыточно. В исключительных случаях это может быть полезно, но только с очень плохим поставщиком.

...