2011-12-11 68 views
5

我处于一种情况,我有一些ScalaTest书面测试(与JUnit兼容),并且我想测试运行测试时得到的codecoverage的质量。在Eclipse中测试Scala代码覆盖范围

我不想直接使用SBT,但有一个Eclipse Scala项目,其中我有一些我想运行的测试用例。

什么是我最好的方式去?

+1

你使用哪种构建工具,如果不是sbt。 Maven的?你想测试斯卡拉代码还是你只在斯卡拉编写测试? – Steffen

+0

我正在使用普通的eclipse“scala builder”等,当我完成后,我将这些项目导出为eclipse插件。我想测试scala代码,测试也是用Scala编写的。 – StefanE

回答

3

我在Eclipse中使用EclEmma代码覆盖。使用更新站点进行安装。

请注意,它不会显示在Scala透视图中,只显示Java透视图,但没关系,因为您仍然可以以这种方式运行基于Scala的单元测试。

当您安装它时,它会为您的工具栏添加一个新的“运行”按钮。当你使用这个功能时,会运行你选择的单元测试,生成一个覆盖报告,并突出显示你的代码,以显示已经覆盖和未覆盖的内容。

我刚刚用一个Scala项目测试了Scala单元测试,它似乎工作正常。

+1

EclEmma插件现在显示在Scala视角! – Mark

+0

似乎不适用于scalatest –

+0

它的工作原理,但你需要注释该类与junit跑步者运行 –

0

在斯卡拉我有这个工作 “普通scalatest班”

它所需要的是添加对您的scalatest类进行注释以使其作为Junit运行(请参阅下面的注释)。这使用scalatests自己的junitrunner。

@RunWith(classOf [JUnitRunner]) 类MyTest的扩展FeatureSpec与匹配器与GivenWhenThen与StrictLogging {

一旦你做到了这一点,你会看到,你可以在Eclipse作为现在运行此一等级“斯卡拉junit测试“。你也可以“覆盖 - > junit测试”。

如果你已经安装了eclemma插件,那么你会看到覆盖面板(你可能需要手动添加这个到你的scala透视图),测试提供的覆盖范围,你也会看到红色/绿色/黄色逐行覆盖您的课程。

生活是美好的!

+0

只是为了透露一些更多的细节,我使用的是junit 4.12,scalatest 2.2.5,eclipse mars –

+0

关于scalatest junitrunner的更多信息:http://www.scalatest.org/user_guide/using_junit_runner –