Может ли тестовый скрипт Perl определить, запускается ли он из жгута параллельно?

Проблема заключается в следующем:

Управление внешним состоянием в тестовом файле снижает возможный параллелизм вашего набора тестов.

Я тестирую точное управление внешним состоянием (а затем его сброс).

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

Так что я бы обошел эту проблему, обнаружив условие параллелизма, а затем пропустив тест, который бы манипулировал внешним состоянием, тем самым заставляя другие терпеть неудачу.Это выполнимо? Как?

Обратите внимание, что простого анализа переменной среды HARNESS_OPTIONS из вашего сценария недостаточно для обнаружения условия: например, proof -j3 не установит его.

Обновление

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

Я думал о чем-то вроде, хм, ну, я читал это в вашей (великолепной!) Книге Эффективное программирование на Perl , Брайан, что-то вроде тестов сопровождающего , не уверен в термин сейчас, который вы обычно используете только в том случае, если вы поддерживаете модуль, а не во время установки на компьютер пользователя. Кажется, помните, что для этого использовалось соглашение об использовании некоторой переменной окружения.

5
задан brian d foy 17 August 2012 в 04:20
поделиться