2016-04-15 2 views
2

Мне удалось получить огурец-scala и запустить на Play/Scala. Теперь я хочу запустить все приложение для воспроизведения, чтобы я мог использовать что-то вроде Selenium для тестирования моего приложения.тестирование интеграции cucumber-scala и Play Framework

Моих текущих попыток привели меня к

val app = new FakeApplication() 
val port = 3333 

    lazy val browser: TestBrowser = TestBrowser.of(webDriverClass, Some("http://localhost:" + port)) 
    lazy val server = TestServer(port, app) 

Конечно это FakeApplication() является не настроена в любом случае ... Могу ли я приближаюсь это неправильно? Это приложение также мульти-модуль и В идеале я хотел бы иметь тесты функций запуска для каждого модуля (см выхода из дерева ниже)

├── README.md 
├── build.sbt 
├── conf 
│   ├── application.conf 
│   └── routes 
├── logs 
│   └── application.log 
├── modules 
│   ├── module1 
│   │   ├── app 
│   │   ├── conf 
│   │   ├── target 
│   │   └── test 
│   └── module2 
│    ├── app 
│    ├── conf 
│    └── target 
└── project 
   ├── build.properties 
   ├── plugins.sbt 
   ├── project 
   │   └── target 
   └── target 
    ├── config-classes 
    ├── resolution-cache 
    ├── scala-2.10 
    └── streams 

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

Спасибо,

Бен

Update:

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

Однако При работе через sbt test я получаю следующий результат:

вызвано следующими причинами: com.google.inject.ProvisionException: Невозможно положения см следующие ошибки:

1) Error in custom provider, Configuration error: Configuration error[Router not found: admin.Routes] 
    while locating play.api.inject.guice.FakeRouterProvider 
    while locating play.api.routing.Router 
    for parameter 0 at play.api.http.JavaCompatibleHttpRequestHandler.<init>(HttpRequestHandler.scala:200) 
    while locating play.api.http.JavaCompatibleHttpRequestHandler 
    while locating play.api.http.HttpRequestHandler 
    for parameter 4 at play.api.DefaultApplication.<init>(Application.scala:221) 
    at play.api.DefaultApplication.class(Application.scala:221) 
    while locating play.api.DefaultApplication 
    while locating play.api.Application 
+0

«У меня возникают трудности с запуском приложения» - какие проблемы вы видите, ошибки при запуске тестов? Можете ли вы показать нам полный код: где вы называете 'server.start()', например? –

+0

@ SébastienLeCallonnec Извините, я должен уточнить. Я могу запустить приложение, но нет никаких маршрутов или что-то настроенное. –

ответ

0

Если вы с использованием параметров конфигурации по умолчанию для IntegrationTest в SBT и ScalaTestPlusPlay, вот каталоги использовать:

src/it/scala  – scala IT code 
src/it/java  – java IT code 
src/it/resources – resources, including configuration 

Поместите файлы application.conf и routes в каталог ресурсов и FakeApplication заберет его. Вы также можете установить пути в сценарии sbt в другое место.

Если все ваши/тестирование интеграции машин развития Unix-подобные, и вы используете Git для VC, вы можете использовать относительного SYMLINK на ваш реальный файл маршрутов.

Для Windows или других VCS вам, скорее всего, придется скопировать файл маршрутов и выполнить двойное обслуживание.

 

символическая используя относительный путь к оригиналу, например, ../../../conf/routes.

+0

'ScalaTestPlusPlay', вероятно, не требуется, но он отлично интегрирует поддержку Selenium ScalaTest с Play. – WeaponsGrade

Смежные вопросы