Лучшие практики для написания параллельных модульных тестов - PullRequest
9 голосов
/ 27 октября 2009

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

Ответы [ 2 ]

5 голосов
/ 27 октября 2009

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

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

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

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

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

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

4 голосов
/ 27 октября 2009

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

Организация юнит-тестов

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

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

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