我想向我的SBT + Spray应用程序添加集成测试阶段。SBT集成测试设置
理想情况下是一样的Maven,有以下几个阶段:
compile
:这个应用程序是建立test
:本机运行测试pre-integration-test
:这个应用程序是在推出单独的过程integration-test
:集成测试运行;他们发布在后台运行要求的应用程序,并确认正确的结果返回post-integration-test
:此前推出关机
我遇到了很多麻烦得到这个应用程序的实例工作。我可以遵循一个有效的例子吗?
1)分离的“它”基本代码:
我开始通过加入project/Build.scala
在"Integration Test" section of the SBT docs显示一个新的文件中的代码。
这使我可以在“src/it/scala”下添加一些集成测试,并用“sbt it:test”运行它们,但我看不到如何添加pre-integration-test
挂钩。
问题“Ensure 're-start' task automatically runs before it:test”似乎解决了如何设置这样的钩子,但答案不适用于我(请参阅my comment on there)。
另外,将上面的代码添加到我的build.scala中,它完全停止了“sbt re-start”任务:它试图以“it”模式运行应用程序,而不是“默认”模式。
2)集成测试在“测试”的基本代码:
我使用的IntelliJ,以及单独的“它”的代码库有真糊涂了。它不能编译该目录中的任何代码,因为它认为所有的依赖关系都丢失了。
我想,而不是粘贴从SBT文档“Additional test configurations with shared sources”的代码,但我得到一个编译错误:
[error] E:\Work\myproject\project\Build.scala:14: not found: value testOptions
[error] testOptions in Test := Seq(Tests.Filter(unitFilter)),
有一个工作的例子我能理解吗?
我正在考虑放弃通过SBT设置这个,而是增加一个测试标志来将测试标记为“集成”并编写一个外部脚本来处理这个问题。
传奇!这看起来很棒 – Stephen