Scala测试:SUnit,ScalaTest,ScalaCheck,Specs和ParTest的状态和关系是什么?

soc*_*soc 21 testing unit-testing specs scala scalatest

Scala提供了不同测试框架的选择,但我想知道它们的成熟度和稳定性是否存在差异以及它们提供了哪些独特的功能.

是否有一个特定的适合各种发展的?

不同的框架可以相互交互,也可以与针对其他语言的测试运行者互操作?

Dan*_*ral 24

  • SUnit 不再存在.
  • ScalaTest和Specs已经成熟,维护和接收改进(顺便提一下,Specs2最近还没有出来).他们之间的选择是一个品味问题.
  • ScalaCheck没有特别好的跑步者,但ScalaTest和Specs都对ScalaCheck集成有特殊支持.它被认为是一个重要的工具.
  • ParTest仅用于编译器,因为它测试"像这样编译吗?"之类的东西.和"这编译?",错误和警告消息等.它不是针对应用程序开发,不应该用于此.

  • 但是,partest可能对*library*/DSL开发很有用.请参阅[有关scala-user的讨论](https://groups.google.com/d/topic/scala-user/gdfOmtXn1v4/discussion). (2认同)

par*_*tic 9

ScalaTest和Specs具有非常相似的语法和功能列表,它们都被社区采用.它们都允许单元和验收测试.

ScalaCheck有着截然不同的理念.测试生成随机实例并检查某些属性是否成立.属性和生成器可以用一个很好的功能习惯来定义和组合.ScalaTest和Specs允许您在测试中编写ScalaCheck属性.

在Scala开始编程之前删除了SUnit所以我不知道它是如何工作的.在你的问题之前,我从未听说过ParTest.