在几个Scala对象中,我定义了一个调用runTests的main方法,这是Test中的一个抽象方法。有没有办法让main方法被分解到一个公共位置(Trait或其他解决方案),这样我仍然可以通过键入 ctrl - 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
...
答案 0 :(得分: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 {}
}