2012-04-06 10 views
3

いくつかのScalaオブジェクトでは、Testの抽象メソッドであるrunTestsを呼び出すmainメソッドを定義しました。私はキーイングでEclipseでテストを実行できるように、メインメソッドを共通の場所(特性やその他のソリューション)に組み込む方法はありますか?ctrl - F11Scalaオブジェクトのmainメソッドを共有場所に分解するにはどうすればいいですか?

これは、それが動作するかどうか、私はテストすることはできませんので、私はこのコンピュータ上のEclipseを持っていない、私は現時点で持っているもの

https://github.com/janekdb/stair-chess/blob/master/src/chess/model/BoardModelTest.scala

object BoardModelTest extends Test with TestUtils { 

    def main(args: Array[String]) { 
    runTests 
    } 

    def runTests { 
    ... 

https://github.com/janekdb/stair-chess/blob/master/src/test/Test.scala

trait Test { 

    def runTests: Unit 
    ... 
+0

をあなたはScalaTestやspecs2を使用して、独自のテストフレームワークを展開していない理由があるのでしょうか? – tolitius

+1

@tolitius私の現在の焦点はScalaの基本を学んでいるので、自分自身でもっとうまくいくほど自分の目標を達成することができます。後でライブラリとフレームワークの採用を検討します。あなたの興味に感謝します。 –

答えて

8

ですCtrl + F11を押しながら、あなたは自分のタイプをしたいと思う:

trait Main { 
    self: Test => 
    def main(args: Array[String]) { 
    runTests 
    } 
} 

あなたはその後、自分のTestトレイト後にそれを混ぜる:

object BoardModelTest extends Test with TestUtils with Main { 
    def runTests {} 
} 
+1

これは私の問題を完全に解決しました。素晴らしい答えをありがとう。 –

+1

最終結果:5行5行でMain.scalaと行数を減らしました:https://github.com/janekdb/stairchesches/commit/11bdffffa861132d3a7f3e58e989241cd33460c5 –

関連する問題