Unit testing 有没有与Maven很好集成的Scala单元测试工具?
我的公司开始使用Scala编写一些代码。我已经被转移到这个项目上,我是TDD的忠实粉丝,所以我想建立一个单元测试框架。然而,我们在这个项目中使用的构建系统是Maven,出于各种原因,它不会改变 我已经研究了ScalaTest和ScalaCheck,它们似乎都有Maven集成方面的问题。我在谷歌搜索中看到的各种论坛帖子表明,ScalaTest中包含的一些套件不会在maven scala插件下运行,我也无法在maven的测试目标中找到任何关于运行ScalaCheck的信息Unit testing 有没有与Maven很好集成的Scala单元测试工具?,unit-testing,maven-2,scala,Unit Testing,Maven 2,Scala,我的公司开始使用Scala编写一些代码。我已经被转移到这个项目上,我是TDD的忠实粉丝,所以我想建立一个单元测试框架。然而,我们在这个项目中使用的构建系统是Maven,出于各种原因,它不会改变 我已经研究了ScalaTest和ScalaCheck,它们似乎都有Maven集成方面的问题。我在谷歌搜索中看到的各种论坛帖子表明,ScalaTest中包含的一些套件不会在maven scala插件下运行,我也无法在maven的测试目标中找到任何关于运行ScalaCheck的信息 有谁能告诉我一种让Scal
有谁能告诉我一种让ScalaTest/ScalaCheck在Maven上可靠运行的方法,或者建议一种替代方法吗?回答我自己的问题:JUnit4Runner包似乎提供了必要的粘合剂,可以将ScalaTest的全部功能与Maven集成在一起。此外,有传言称ScalaTest的下一个版本将包含类似的内容。您还可以使用来声明规范,并将它们作为JUnit测试与Maven一起执行。这很好,如下所述: 如果您对此有任何疑问,请在用户邮件列表上发布邮件 谢谢 埃里克 PS:如果您想访问这些库的某些功能,还可以使用规范中的ScalaTest和ScalaCheck。ScalaTest 1.0具有: org.scalatest.junit.JUnitRunner 您可以将它与JUnit的RunWith注释一起使用。马文喜欢这样。现在还有一个Maven插件用于ScalaTest,由Jon Anders Teigen编写。现在,您需要从Jon Anders github页面获取它: 很快,我们计划在Maven存储库中“正式”部署它
插件正式部署到 我意识到这一点已经得到了回答,但是我发现在Maven中使用Scalatest最完整的答案是 我在这里添加这些信息是因为当谷歌搜索Scalatest和Maven设置时,这些问题在结果中占了相当高的比例,但没有提供令人满意的(我的情况)答案 基本上:
- 像往常一样将scala添加到pom以及scalatest(版本>1.0)和junit
- 添加
作为规范上的类注释@RunWith(classOf[JUnitRunner])
- 告诉maven surefire插件包含
***Spec.class
import org.scalatest.junit.JUnitRunner
import org.junit.runner.RunWith
import org.scalatest.Spec
import org.scalatest.matchers.ShouldMatchers
@RunWith(classOf[JUnitRunner])
class AutomatonSpec extends Spec with ShouldMatchers {
(...)
}
在pom.xml中:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Spec.class</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven surefire插件
**/*规格等级
Scala有一些有用的单元测试套件:
ScalaCheck
ScalaCheck是Haskell的QuickCheck库的Scala实现。它试图尽可能保持QuickCheck的外观和感觉,同时开放进行改进和扩展,以简化基于属性的Scala程序随机测试的任务。
小组:里卡德·尼尔森。需要:Scala 2.6.0或更新版本。文档:用户指南
Rehersal
Rehersal是Scala的测试框架,旨在作为标准库中SUnit的更易于使用的替代品。
团队:拉斐尔·科恩
ScalaTest
ScalaTest是一个免费的开源测试工具,面向Scala和Java程序员。它是用Scala编写的,允许您用Scala编写测试来测试Scala或Java代码。它是根据Apache2.0开源许可证发布的。
团队:比尔·维纳斯
Scala规格
Specs是一个行为驱动的设计框架,它提供:一种简单的类型化语言来创建规范;匹配器指定代码属性;与JUnit、Scalacheck和jMock2集成;像匹配器一样的图案;构建和编写规范的可能性,以及跨规范重用示例的可能性;数据表一次将多个数据示例分组。
球队:埃里克·托雷伯里、大卫·伯纳德、豪尔赫·奥尔蒂斯
From:我喜欢规范,并且发现它很容易在Eclipse中作为JUnit测试运行。对于Maven 3.0,插件描述应该在
部分,而不是
。***Spec.class
对我来说是一个很好的帮助。谢谢根据@gpampara评论更新了这个答案,我非常高兴地发现…:)