Как запустить некоторые, но не все тесты в наборе тестов Perl параллельно?

У меня есть набор тестов на основе Perl -с более чем 10 000 тестов, которые я хотел бы ускорить. Я протестировал с использованием флага -jдля proveи обнаружил, что большинство -, но -, а не -, все мои тесты готовы к параллельному запуску.

Хотя я могу работать над тем, чтобы сделать оставшиеся тесты «дружественными к параллельной работе», я ожидаю, что всегда будут некоторые тесты, которые не являются таковыми. Какой хороший способ справиться с этим? Я хотел бы, чтобы можно было легко эффективно запускать весь набор тестов и легко помечать тесты как «не -параллельные -готовые», если мне это нужно.

Вот несколько вариантов, которые я вижу:

  1. Prove может быть исправлен для поддержки некоторых тестов как не -параллельных -готовых
  2. Jenkins используется для управления запуском набора тестов. Я мог бы разделить не -параллельные тесты на отдельные прогоны. Другими словами, сдайтесь и используйте два тестовых прогона.
  3. Возможно, есть способ объединить два потока результатов TAP, который мне еще предстоит восстановить.

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

(Набор тестов частично основан на Test ::Class, и я также рассмотрю Test ::Class ::Load, чтобы ускорить его.)

15
задан Mark Stosberg 15 August 2012 в 21:19
поделиться