2013-03-11 4 views
9

Функциональные тесты, связанные с классом TestServerPlay Framework, похоже, работают только внутри игровой консоли.Параллельный тестовый бегун для игрового каркаса

К сожалению, бегун проверки запасов на консоли Play, выполненный командой play test, выполняет тесты в последовательности, и это занимает много времени. Я думаю, что они будут работать быстрее, если они будут выполняться параллельно.

Есть ли способ провести тесты параллельно?

Обновление: SBT поддерживает параллельные запуски тестов и в разных JVM, что позволяет иметь несколько параллельных экземпляров , если они прослушивают разные порты, теоретически. Кажется, Play игнорирует эти настройки. См. Мою сообщенную проблему: https://github.com/playframework/Play20/issues/849. Щедрость идет для кого-то, кто показывает способ, с помощью которого Play Framework оценивает эти параметры теста SBT для запуска параллельных тестов на основе junit в разных JVM с файлом Build.scala.

ответ

0

Стандартные настройки 2 для Play2 не позволяют выполнять параллель. https://github.com/playframework/Play20/blob/master/framework/project/Build.scala#L290

parallelExecution in Test := false 

Таким образом, вы должны переопределить этот параметр в вашем Build.scala.

parallelExecution in Test := true 

Но я думаю, что вы не можете выполнить тест параллельно, потому что TestServer нужен порт. Если вы хотите выполнить параллельный тест, вы должны изменить порт в каждом случае.

+0

я добавил параметр, как это, но это, кажется, не имеют никакого эффекта: знач основные = play.Project (APPNAME, AppVersion, appDependencies) .settings ( parallelExecution в тесте: = True ) Это обязательство также предполагает, что работает несколько тестовых серверов имеют больше проблем, чем конфликтующий порт: https://github.com/playframework/Play20/commit/b951b22a76b51ea1235af3525cdf4d48edd19ad2 – Tamas

+0

'fork in Test: = true' будет решать проблему одновременного запуска нескольких экземпляров TestServer. (Предполагая, что назначение порта позаботится) Проблема состоит в том, что кажется, что игра игнорирует мои настройки, определенные следующим образом: 'val main = play.Project (...). Settings ([settings here])' Даже очень простые тесты которые могут выполняться параллельно, не выполняются параллельно, независимо от параметра 'parallelExecution in Test: = true'. – Tamas

1

После изучения темы кажется, что Play игнорирует настройки конфигурации теста SBT. Я доложил о проблеме здесь:

https://github.com/playframework/Play20/issues/849

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