scala – 设置以使SBT在错误时快速停止(停止)
发布时间:2020-12-16 09:39:01 所属栏目:安全 来源:网络整理
导读:我正在运行一个多项目SBT(v0.13)构建,并希望它在子项目中遇到的第一个错误(编译)失败(停止)。 目前的行为是当子项目中无法编译某些东西时,它会继续编译所有其他子项目。 遇到编译错误的第一个子项目是否有办法/设置使SBT停止/退出? 解决方法 据我所知,SB
我正在运行一个多项目SBT(v0.13)构建,并希望它在子项目中遇到的第一个错误(编译)失败(停止)。
目前的行为是当子项目中无法编译某些东西时,它会继续编译所有其他子项目。 遇到编译错误的第一个子项目是否有办法/设置使SBT停止/退出? 解决方法
据我所知,SBT不控制这一点。当SBT检查您的单元测试时,SBT将会调用相应的测试框架。然后,测试框架可以决定运行测试的顺序,同时运行它们,如何报告问题等等。当然,每个测试框架都有自己的功能,配置和约定。 Scala的两个最广泛使用的测试框架是ScalaTest和Specs2。
幸运的是,您可以在Specs2或ScalaTest中获得您要求的行为。我在下面提供了简单的单元测试示例,尽早失败。 ScalaTest 您可以通过混合CancelAfterFailure特征,在ScalaTest中获取单个测试套件的故障快速行为。例如,此测试将执行第一个测试,第二个测试失败,并显示第三个被取消。 class SomeSuite extends FunSuite with CancelAfterFailure with Assertions { test("first") { println("first") } test("second") { assert(false) } test("third") { println("third") } } Specs2 与ScalaTest类似,您可以在每个规范的基础上控制Specs2中的行为。要获得类似故障的行为,您需要在规范中添加两个参数:顺序和stopOnFail。有关可以设置的参数的完整列表,请参阅the docs。 (如果你想要一个明显的线性排序,你需要两个,因为默认情况下Specs2将同时执行你的测试!) class SomeSpec extends Specification { sequential stopOnFail "specs2" should { "first" in { println("first") ok } "second" in { "foo" must equalTo ("bar") } "third" in { println("third") } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- webservice (二) 初次尝试
- Azure Stack运维工具Azure Stack Tools的使用及实战
- AngularJS实际项目应用——Service层介绍
- 以角度2在两个子组件之间进行通信
- twitter-bootstrap – 将Bootstrap的工具提示对齐到元素的左
- amazon-web-services – 如何从AWS ECR Container Registr
- 数组 – 如何在Angular 4中将对象转换为数组?
- angular2-cli – 找不到模块’./models/config’
- fedora 23 lvm2格式 根目录磁盘空间不足 扩容方法
- webService---使用Xfire从WSDL生成客户端(详)