Лучшие практики для написания параллельных модульных тестов

StackOverflow https://stackoverflow.com/questions/1629666

  •  06-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Если под параллельными юнит-тестами вы имеете в виду тесты, которые могут выполняться одновременно, самый важный совет, который я могу вам дать, - это избегать так называемых Shared Fixtures.

В книге тестовые шаблоны xUnit описан термин Fixture, который в основном может быть описывается как весь контекст, в котором выполняется каждый тест, включая постоянные и временные данные .

Shared Fixture указывает, что тестовые примеры имеют некоторый контекст во время работы. Если этот контекст изменчив, могут возникнуть условия гонки.

Поддержание неизменности Shared Fixture (так называемый Immutable Shared Fixture) позволит вам выполнять тесты параллельно, но еще лучше, так называемые Fresh Fixtures (где каждый тестовый случай имеет свой собственный Fixture) являются поточно-ориентированными. определение, поскольку только сам тестовый случай имеет доступ к Fixture.

Примеры общих фиксаторов включают в себя любые виды тестов, которые используют общую базу данных, но также включают тесты, в которых у вас есть статическое состояние в памяти либо в тестируемой системе (SUT), либо в самих тестах, поэтому вам следует избегать этого .

Также следует помнить, что если ваша SUT получает доступ к общим (статическим) данным, сам этот доступ должен быть поточно-ориентированным.

Другие советы

Несколько интересных ссылок для вас:

Организация модульных тестов

Параллельное выполнение модульных тестов

В этих вопросах Stackoverflow есть несколько интересных ответов. Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top