2012-09-21 6 views
5

私はMartin Odersky Courseraクラスを使用しており、割り当てはScalaTestを使用しています。 Eclipseがダブルクリックでテストメソッドを見つけることができないか、JUnitランナーの "Go to File"を右クリックするのは非常に面倒です。Eclipse JUnitランナーは、ダブルクリックでScalaTestメソッドを見つけることができません。

ダブルクリックすると、「メソッド 'xxxx」が見つかりません。テストクラスを開くことができます。ダイアログがポップアップします。

設定に問題がありますか、これはScalaTestのバグ/制限ですか?ここで

は、クラスからのサンプルScalaTestだ:はい、それは、EclipseのJUnitプラグインにおける既知のバグ

package recfun 

import org.scalatest.FunSuite 

import org.junit.runner.RunWith 
import org.scalatest.junit.JUnitRunner 

@RunWith(classOf[JUnitRunner]) 
class CountChangeSuite extends FunSuite { 
    import Main.countChange 
    test("manual") { 
    assert(countChange(4,List(1,2)) === 3) 
    } 
} 

答えて

2

ScalaTest EclipseプラグインをScalaTest 1.8で使用することができます。しかし、テストを実行すると、GUIがポップアップ表示されます。 ScalaTest 2.0の統合と同じくらい便利ではありません。私はコースラコースで1.8を使っていると思います。

JUnitの実際の問題は、ScalaTestで解決しようとしている問題です。 JUnitはテストフレームワークであるだけでなく、@ RunWithアノテーションを介して他のフレームワークを実行できるテストプラットフォームです。この場合、JUnitを使用してScalaTestを実行しています。しかし、あなたは@RunWithアノテーションで完全なIDEサポートを受けることはできません。実行するだけです。これはJUnitの実際の制限です。あなたが望むのは、JUnit(この場合はScalaTest)を使って実行しているテストフレームワークのIDEサポートを得ることです。 JUnitでこれを行う唯一の方法は、テストフレームワーク用のIDEプラグインを作成することです。これは多くの作業です。

私たちはScalaTestプロジェクトの一環としてプラグインを作成したり、ScalaTestユーザーに完全なIDEサポートを提供するプラグインの作成を手伝っています。しかし、その努力の一環として、ScalaTestで実行されたときに他のテストフレームワークに完全なIDEサポートを与えるために使用できる「Finder」という概念も出てきました。 (つまり、JUnitで他のテストフレームワークを実行できるのと同じように、ScalaTestを使って他のテストフレームワークを実行することもできます)。このビデオの最後にIDEでサポートされているFindersの例をいくつか見ることができます。

http://skillsmatter.com/podcast/scala/scalatest-scalamock-subcut

+0

Scalaツールを進化させる明確な説明と作業をお寄せいただきありがとうございます!今、誰かが[Android/Eclipse/Scalaを一緒にスムーズにプレイすることができれば](http://stackoverflow.com/q/8113250/403455)... –

3

です。それは解決することも非常に難しいです(それはプラグインのjunのために)。

基本的に、Eclipse junitプラグインには、すべてのJava JUnitテストに対応するメソッドが存在することが想定されていますが、ScalaTestテストでは必ずしもそうではありません。特に、&の仕様です。

しかし、あなたはScalatest plugin for Eclipseを試すことができます。これはうまくいくはずです。

+0

私はあなたのJUnitのプラグイン:)に責任を転嫁しようとしていることを好みます。 ScalaTestの制限とは対照的に、Junitランナーのバグはどうですか? –

+0

あなたがクリックしているのはScalatestではなくJUnitプラグインです。 –

+0

JUnitランナーはScalaのハッキングをどのようにサポートすることができるでしょうか?一方、ScalaTestはEclipseのJUnitランナーのサポートに注意する必要がありますか?私はScalaTestがJunitランナーと互換性があるかどうかを判断していないと思いますか?ちなみに、ScalaTest Eclipseプラグインをインストールしました。+1と受け付けました:) –

0

これが私の作品:

1-フォルダのプロジェクトでコンソールを開き、 "SBT" を実行。

2-(「sbt」から抜けずに)「eclipse」コマンドを実行します。

enter image description here

関連する問題