3

有人知道为什么JUnit 4 测试运行程序找不到从 Scala 特征继承的@Test注释方法它给了我“没有找到 JUnit 测试”。

class FooTests extends BarTesting

但是以下修改有效吗?

import junit.framework.TestCase

class FooTests extends TestCase with BarTesting

在 Scala trait BarTesting 中,我定义了具有以下签名的方法。

@Test
final def testBar() {
 // ...
}
4

1 回答 1

1

这确实是 Eclipse 中的一个错误。如果你愿意,你可以这样加注。http://www.assembla.com/spaces/scala-ide/tickets

当您扩展 TestCase 时,测试正在运行,因为它以 test 开头,而不是因为注释。注释的识别存在问题,这就是 junit 的工作方式,我还没有查看它是否已修复以使 junit 的工作正常。

你最好的选择是:

  1. 提出针对 scala-ide 的错误
  2. 将 @RunWith[classOf[JUnit]) 添加到您的班级

以下作品:

trait BarTesting {
  @Test final def testBar() {
    println("Hello world")
  }
}

@RunWith(classOf[JUnit4])
class FooTesting extends BarTesting {
}

我会尝试修复这个错误。

编辑:在最新版本的 scala-ide 中(截至 2011 年 11 月 9 日),现在可以使用了。

于 2011-08-08T16:05:15.500 回答