2012-06-28 5 views
1

Я пытаюсь создать трубопровод сборки на Jenkins с проектом Play (2.0.2).sbt and play: «test» works «test: run» not

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

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

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

[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». Такая же ошибка.

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

+1

Вы используете одно и то же рабочее пространство для обеих заданий? – CIGuy

+0

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

+0

CIGuy, да. Я использую одно и то же рабочее пространство. Спасибо @Mark, я хотел бы отметить ваш комментарий в качестве ответа. Не могли бы вы отправить его снова в качестве ответа? У меня есть другой вопрос: как использовать sbt для запуска unit-тестов (JUnit) в предварительно скомпилированных источниках? Должен ли я писать MainClass для этого? Кажется, мне нужно добавить [junit-interface] (https://github.com/szeiger/junit-interface) как зависимость, которая кажется странной, поскольку они работают нормально, когда я делаю «sbt clean test» – Martin

ответ

2

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