1

これが私のテストケースですが、ファイルを右クリックしても、Eclipseでrunasjunitテストオプションが表示されません。実行構成を手動で作成しようとしましたが、意味がありません。scalaバージョン:2.8.1scalatest:1.3 eclipse:3.6.2

package org.jilen.cache.segment

import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import org.scalatest.FlatSpec
import org.scalatest.matchers.ShouldMatchers

@RunWith(classOf[JUnitRunner])
class RandomSegmentSpec extends FlatSpec with ShouldMatchers {
  val option = SegmentOptions()

  "A Simple Segment" should "contains (douglas,lea) after put into" in {
    val segment = RandomSegment.newSegment(option)
    segment.put("douglas", "lea")
    segment("douglas") should be("lea")
  }
  it should "return null after (douglas,lea) is remove" in {
    val segment = RandomSegment.newSegment(option)
    segment.put("douglas", "lea")
    segment -= ("douglas")
    segment("douglas") should equal(null)
  }

  it should "contains nothing after clear" in {
    val segment = RandomSegment.newSegment(option)
    segment.put("jilen", "zhang")
    segment.put(10, "ten")
    segment += ("douglas" -> "lea")
    segment += ("20" -> 20)
    segment.clear()
    segment.isEmpty should be(true)
  }
}
4

3 に答える 3

4

私はこれに一見ランダムに遭遇しました、そして私はついにその理由を理解したと思います。

残念ながら、プラグインは、ファイルを移動するときのパッケージ宣言も、ファイルの名前を変更するときのクラス名もまだ変更していません。(1つのファイルに複数のクラスを入れることができるとすると、後者はおそらく実行されません。)Eclipseで自動的に行われる名前の変更に慣れている場合は、私のように、これに巻き込まれることになります。

だから...以下を注意深くチェックしてください:

  1. Scalaファイルのパッケージ宣言はEclipseパッケージ名と一致します
  2. Scalaファイルのテストクラス名前はScalaファイルの名前と一致します

私はちょうどこれに遭遇し、両方を修正しました、そして今私のテストは実行されます!

于 2011-05-03T23:10:29.593 に答える
1

これは、Eclipse IDEforScalaの既知の問題です。私は現在、このためのプラグインに取り組んでいます。このスペースをご覧ください。

于 2011-04-18T19:53:04.297 に答える
0

ScalatestはEclipseとの統合が非常に悪いことがわかりました(eclipseからテストを実行すると、テストが実行されたことが示されましたが、合格または不合格にはならず、単にパッシブブランクボックスとして表示されます)。どういうわけか、3時間試してみても動作しませんでした!

最後にspecs2-を試しましたが、うまくいきました(Scala 2.9、Junit4、Eclipse 3.6)!

彼らはここに素晴らしいドキュメントを持っています:http: //etorreborre.github.com/specs2/guide/org.specs2.guide.Runners.html#Runners+guide

どのテストフレームワークを使用するかは気にしないので、純粋に利便性の観点からSpecs2を試してみます。

于 2011-07-04T18:27:30.213 に答える