Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Unit testing 有没有与Maven很好集成的Scala单元测试工具?_Unit Testing_Maven 2_Scala - Fatal编程技术网

Unit testing 有没有与Maven很好集成的Scala单元测试工具?

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

我的公司开始使用Scala编写一些代码。我已经被转移到这个项目上,我是TDD的忠实粉丝,所以我想建立一个单元测试框架。然而,我们在这个项目中使用的构建系统是Maven,出于各种原因,它不会改变

我已经研究了ScalaTest和ScalaCheck,它们似乎都有Maven集成方面的问题。我在谷歌搜索中看到的各种论坛帖子表明,ScalaTest中包含的一些套件不会在maven scala插件下运行,我也无法在maven的测试目标中找到任何关于运行ScalaCheck的信息


有谁能告诉我一种让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
在Spec.scala文件中:

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评论更新了这个答案,我非常高兴地发现…:)