3

在几个 Scala 对象中,我定义了一个调用 runTests 的 main 方法,它是 Test 中的一个抽象方法。有没有办法将主要方法分解到一个公共位置(特征或其他解决方案),以便我仍然可以通过键入ctrl-在 Eclipse 中运行测试F11

这是我目前拥有的,

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
  ...
4

1 回答 1

8

我在这台计算机上没有 Eclipse,所以我无法测试它是否可以与 Ctrl+F11 一起使用,但我认为你想要一个自我类型:

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

然后,您只需在您的Test特征之后将其混合:

object BoardModelTest extends Test with TestUtils with Main {
  def runTests {}
}
于 2012-04-06T17:02:01.627 回答