使用SBT编译测试并将其打包以便稍后运行

时间:2013-05-05 21:44:56

标签: scala playframework-2.0 integration-testing sbt

我正在使用SBT和Play!框架。目前我们在我们的管道中有一个提交阶段,我们在其中发布我们的二进制文件。使用dist任务生成二进制文件。然后管道运行用scala编写的冒烟和验收测试。它们与sbt一起运行。

我想要做的是编译冒烟和验收测试以及二进制文件并将它们发布到神器中。这将允许管道下载这些二进制文件(测试套件)并运行它们,而不是每次都重新编译它们,这需要很长时间。

我试过sbt test:compile生成jar,但是我找不到运行测试的方法。

1 个答案:

答案 0 :(得分:12)

不要在工件中发布测试

publishArtifact in GlobalScope in Test:== false

来源:https://github.com/sbt/sbt/blob/a7413f6415687f32e6365598680f3bb8545c46b5/main/src/main/scala/sbt/Defaults.scala#L1118

这是如何启用它

// enable publishing the jar produced by `test:package`
publishArtifact in (Test, packageBin) := true

// enable publishing the test API jar
publishArtifact in (Test, packageDoc) := true

// enable publishing the test sources jar
publishArtifact in (Test, packageSrc) := true

来源:http://www.scala-sbt.org/release/docs/Detailed-Topics/Artifacts

运行测试

scala -classpath pipeline.jar classpath scalatest-<version>.jar org.scalatest.tools.Runner -p compiled_tests

其中pipeline.jar是您从管道

收到的测试工件

或者您可以通过sbt

设置测试项目

http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing.html