Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 使用SBT编译测试,并将其打包以供以后运行_Scala_Playframework 2.0_Integration Testing_Sbt - Fatal编程技术网

Scala 使用SBT编译测试,并将其打包以供以后运行

Scala 使用SBT编译测试,并将其打包以供以后运行,scala,playframework-2.0,integration-testing,sbt,Scala,Playframework 2.0,Integration Testing,Sbt,我和SBT一起工作,一起玩!框架目前,在我们的管道中有一个提交阶段,我们将二进制文件发布到artifactory。二进制文件是通过dist任务生成的。然后,管道运行用scala编写的烟雾测试和验收测试。它们与sbt一起运行 我想做的是编译冒烟测试和验收测试以及二进制文件,并将它们发布到artifactory。这将允许管道下载这些二进制文件(测试套件)并运行它们,而不是每次重新编译它们,这需要很长时间 我尝试了生成jar的sbt-test:compile,但是我找不到运行测试的方法。sbt不在工件

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

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


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

sbt不在工件中发布测试

publishArtifact in GlobalScope in Test:== false
资料来源:

这就是如何启用它

// 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
资料来源:

运行测试

scala -classpath pipeline.jar classpath scalatest-<version>.jar org.scalatest.tools.Runner -p compiled_tests
scala-classpath pipeline.jar classpath scalatest-.jar org.scalatest.tools.Runner-p编译的测试
其中
pipeline.jar
是您从管道接收的测试工件

或者,您可以通过sbt设置测试项目


你所说的“管道”到底是什么意思?“管道”是指像Jenkins这样的独立构建服务器吗?是的,我们有一个由Jenkins管理的部署管道。它所做的是每当有人推到master时下载代码,对其运行测试,如果成功,则使用dist任务构建二进制文件。我不明白为什么不在同一个构建节点上同时运行构建和测试,两者都使用sbt。而且,我的测试运行的时间要比编译的时间长得多,所以我很惊讶你的测试正好相反。然后,我的Jenkins与公司的Jenkins通信,并让它在QA环境中部署二进制文件。然后,它进行通信,我们继续测试。在这一步中,我们使用“sbt smoke:tests”运行冒烟测试。这是缓慢的一步。因为jenkins的工作再次下载代码,sbt更新常春藤存储库,构建二进制文件,五分钟后运行一个测试套件,耗时7秒,这就是冒烟测试。这一步我想短路。希望有帮助!所以我确实做到了。我用test:package任务生成的是一个jar。现在我运行它有困难。它说它找不到主类。我整个测试套件的主要课程是什么?嗨,纪尧姆。事实上,我无法让它与ScalaTest一起工作,因为我使用的是Specs2。我会检查一下那个跑步者是如何工作的,然后再给你回复。我让它和specs2一起工作。以下命令起作用:“java$*-cp$classpath specs2.junitxml test.acceptance.LocationAcceptanceSpec”,其中classpath是运行dist任务时在运行脚本中定义的变量