3

Scalaトレイトから継承された@Test注釈付きメソッドがJUnit4テストランナーによって検出されない理由を誰かが知っていますか?「JUnitテストが見つかりません」と表示されます。

class FooTests extends BarTesting

しかし、次の変更は機能しますか?

import junit.framework.TestCase

class FooTests extends TestCase with BarTesting

ScalaトレイトのBarTestingで、次のシグネチャを使用してメソッドを定義しました。

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

1 に答える 1

1

これは確かにEclipseのバグです。必要に応じて、そのようにレイズすることができます。http://www.assembla.com/spaces/scala-ide/tickets

TestCaseを拡張すると、アノテーションではなくテストで始まるため、テストが実行されます。注釈の認識に問題がありました。これは、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 に答える