Проблема заключается в следующем:
Управление внешним состоянием в тестовом файле снижает возможный параллелизм вашего набора тестов.
Я тестирую точное управление внешним состоянием (а затем его сброс).
Я по-прежнему хотел бы работать параллельно большую часть времени. Тогда я просто хотел бы пропустить тесты, которые будут манипулировать внешним состоянием, что может привести к сбою других.
Так что я бы обошел эту проблему, обнаружив условие параллелизма, а затем пропустив тест, который бы манипулировал внешним состоянием, тем самым заставляя другие терпеть неудачу.Это выполнимо? Как?
Обратите внимание, что простого анализа переменной среды HARNESS_OPTIONS
из вашего сценария недостаточно для обнаружения условия: например, proof -j3
не установит его.
Несмотря на то, что существует множество способов сообщить вашему сценарию тестирования, что он запускается в параллельной системе (см. Ответ Брайана ниже), не существует единого стандартного способа сделать это, который, как я думал, может быть (но не сформулировал это должным образом в своем вопросе).
Я думал о чем-то вроде, хм, ну, я читал это в вашей (великолепной!) Книге Эффективное программирование на Perl , Брайан, что-то вроде тестов сопровождающего , не уверен в термин сейчас, который вы обычно используете только в том случае, если вы поддерживаете модуль, а не во время установки на компьютер пользователя. Кажется, помните, что для этого использовалось соглашение об использовании некоторой переменной окружения.