Как запустить тесты Selenium RC junit с Maven вне нормального жизненного цикла? - PullRequest
2 голосов
/ 08 августа 2011

У меня есть проект Maven, представляющий собой набор тестов Selenium 2, которые выполняются с использованием JUnit.Другими словами, единственная вещь во всем проекте - это тестовые сценарии JUnit, и все они находятся в обычном исходном каталоге, т.е. src / main / java, поскольку они являются основными исходными файлами в проекте.

Я хочу иметь возможностьчтобы запустить те же тесты с использованием Maven, но поскольку эти тесты не являются реальными модульными тестами или интеграционными тестами в рамках проекта (они не сами тестируют, они тестируют веб-приложение где-то еще), я не хочу, чтобы они выполнялись во времянормальный жизненный цикл сборки.Однако я все еще хотел бы иметь возможность определять фазы / цели тестирования в файле POM.

На данный момент я вроде понимаю, как работает плагин surefire, я просто не знаю, как определитьпара казней из сборки.Я хотел бы, чтобы все мои новые исполнения были автономными, чтобы я мог просто запустить их, выполнив что-то вроде: mvn run-webtests и фаза run-webtests будет чем-то совершенно отличным от целей компиляции и пакета моего проекта.

Итак, я думаю, у меня есть два общих вопроса:

1.) Я на правильном пути или есть какой-то лучший способ подумать об этой проблеме?

2.) Что мне нужно делать дальше, чтобы сделать эту работу?Создать пользовательский этап?Создать собственную цель?

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

1 Ответ

2 голосов
/ 08 августа 2011

Я думаю, вы на правильном пути. Просто Maven, к сожалению, не хватает гибкости в некоторых областях. Обычно вещи могут быть сделаны, чтобы соответствовать, но иногда это может быть настоящей болью. Я думаю, что самый простой способ сделать это - использовать другое соглашение об именах для ваших тестов селена и убедиться, что они исключены из ваших "обычных" тестовых прогонов. Затем определите профиль , где вы настраиваете плагин surefire, чтобы включал ваши тесты на селен и исключал другие. Затем, чтобы запустить тесты на селен, вы можете просто

mvn test -P selenium-tests

Единственные способы, которыми вы можете настроить его для запуска mvn run-webtests, это

  1. Определите пользовательский жизненный цикл , где "run-webtests" - это фаза жизненного цикла, или
  2. Напишите плагин , хотя при запуске плагина всегда есть ':', так что это будет больше похоже на mvn myplugin:run-webtests.

Их сложнее и сложнее поддерживать, чем простой профиль в поме.

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