Юнит-тесты для внешних проектов - PullRequest
1 голос
/ 24 февраля 2009

Я пытаюсь получить представление о том, что люди делают в отношении модульных тестов и суб (или внешних) проектов.

Я, надеюсь, поясню на примере. У меня есть проект P1, который опирается на другой проект P2. У P2 есть свои юнит-тесты и цикл выпуска. У P1 также есть свои юнит-тесты. Вопрос в том, должны ли модульные тесты для P2 включаться / запускаться как часть модульного тестирования P1, или модульные тесты P2 должны выполняться только во время выпуска P2?

Ясно, как грязь. Кит.

Ответы [ 4 ]

4 голосов
/ 24 февраля 2009

Нет необходимости запускать тесты P2 при запуске P1. Если код P2 не изменился, повторное выполнение тестов не даст никакой выгоды.

Если P2 выходит из строя из-за тестов P1, то требуется больше модульных тестов для P2, чтобы убедиться, что вы имеете достаточный охват (или, возможно, у вас проблема с интерфейсом, что совсем другая проблема).

2 голосов
/ 24 февраля 2009

Теоретически, если модульные тесты для P2 хороши, вам не нужно их запускать.

Однако, если вы их запустите, есть (возможно, небольшой) шанс, что вы заставите их потерпеть неудачу из-за разницы в окружающей среде. Если стоимость их эксплуатации низкая, почему бы и нет? Однако, если настройка для тестов сложна, вам нужна дополнительная база данных или что-то еще, тогда, возможно, это не стоит боли.

Вам могут понадобиться интеграционные тесты для кода, использующего P2, который тестирует поведение определенных функциональных возможностей, которые вы используете. Если вы используете P2, а P2 меняется каким-то тонким способом, то как вы узнаете. Если у P2 разные циклы выпуска, это особенно важно: вы не знаете, что они сломали: -)

1 голос
/ 24 февраля 2009

Запустите их при выполнении get. Если код извлекается в режиме реального времени из элемента управления исходным кодом, запустите его. Также обратите внимание, что вы можете добавить некоторые интеграционные тесты, как на P1, относительно использования P2.

0 голосов
/ 24 февраля 2009

У меня был похожий опыт в ситуации клиента и сервера. т.е. клиент против веб-сервиса. Были проведены модульные испытания для обоих компонентов.

Тесты P2 основаны на предположении, что P1 является твердым. Это хорошая идея, чтобы работать против релиза P1. Но это не мешает запускать P2 и P1, чтобы найти больше потенциальных проблем.

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