13

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

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

我尝试了生成 jar 的 sbt test:compile,但后来我找不到运行测试的方法。

4

1 回答 1

16

sbt 不要在工件中发布测试

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

于 2013-05-06T23:54:59.637 回答