【问题标题】:sbt and play: "test" works "test:run" notsbt and play:“测试”有效,“测试:运行”无效
【发布时间】:2012-06-30 03:37:03
【问题描述】:

我尝试使用 Play(2.0.2) 项目在 Jenkins 上建立构建管道。

由于我只想构建一次源并将类用于下游构建,因此我现在创建了一个运行“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”。同样的错误。

有人可以为我指明正确的方向吗?

【问题讨论】:

  • 您是否为这两项工作使用相同的工作空间?
  • 另外,test:run 运行在测试源中定义的主类,类似于compile:run 在主源中运行主类。如果没有主类,则没有可运行的内容。
  • CIGuy,是的。我正在使用相同的工作区。谢谢@Mark,我想将您的评论标记为答案。您能否再次发布它作为答案?我现在有一个不同的问题:我将如何使用 sbt 在预编译源上运行单元测试(JUnit)?我应该写一个 MainClass 来做到这一点吗?看来我必须添加一个 junit-interface 作为依赖项,这看起来很奇怪,因为当我执行“sbt clean test”时它们运行良好
  • 完成。最好将新问题设为新帖子。

标签: java jenkins sbt playframework-2.0


【解决方案1】:

test:run 运行在测试源中定义的主类,类似于compile:run 在主源中运行主类。如果没有主类,则没有可运行的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多