sbt и играй: тест работает тест: запустить нет

Я пытаюсь установить конвейер сборки на Jenkins с проектом Play (2.0.2).

Поскольку я хочу просто собрать исходники один раз и использовать классы для последующих сборок, теперь я создал задание «компилировать», которое запускает «sbt test: compile». Это работает до сих пор.

Следующее задание должно просто запустить скомпилированные тесты. Если я использую «sbt test», он работает, как и ожидалось, но снова компилирует исходники.

Но если я пытаюсь запустить "sbt test:run", он говорит:

[info] Loading project definition from ~/myproject/project
[info] Set current project to myproject (in build file: ~/myproject/)
java.lang.RuntimeException: No main class detected.
    at scala.sys.package$.error(package.scala:27)
[error] {file:~/myproject/test:run: No main class detected.

То же самое происходит локально. Я могу запустить "sbt test", но не "sbt test:run". Та же ошибка.

Есть ли кто-нибудь, кто может указать мне правильное направление?


person Martin    schedule 28.06.2012    source источник
comment
Вы используете одно и то же рабочее пространство для обеих работ?   -  person CIGuy    schedule 29.06.2012
comment
Кроме того, test:run запускает основные классы, определенные в тестовых источниках, аналогично тому, как compile:run запускает основные классы в основных источниках. Если нет основного класса, запускать нечего.   -  person Mark Harrah    schedule 29.06.2012
comment
СиГай, да. Я использую то же рабочее пространство. Спасибо @Mark, я хотел бы отметить ваш комментарий как ответ. Не могли бы вы опубликовать это снова в качестве ответа? Теперь у меня другой вопрос: как мне использовать sbt для запуска модульных тестов (JUnit) на предварительно скомпилированных источниках? Должен ли я написать MainClass для этого? Кажется, мне нужно добавить junit-interface в качестве зависимости, что кажется странным, поскольку они работают нормально когда я делаю sbt чистый тест   -  person Martin    schedule 29.06.2012
comment
Сделанный. Вероятно, было бы лучше сделать новый вопрос новым сообщением.   -  person Mark Harrah    schedule 29.06.2012


Ответы (1)


test:run запускает основные классы, определенные в тестовых источниках, аналогично тому, как compile:run запускает основные классы в основных источниках. Если нет основного класса, запускать нечего.

person Mark Harrah    schedule 29.06.2012