2014-01-10 3 views
2

Это мой исходный код для тестирования:значение символа не существует в SomeMethod

import org.openqa.selenium.firefox.FirefoxDriver 
import org.scalatest.FlatSpec 
import org.scalatest.Matchers 

import play.api.test.FakeApplication 
import play.api.test.WithApplication 

class FunctionalSpec extends FlatSpec with Matchers { 
    def withDriver(f: FirefoxDriver => Unit) = { 
    val driver = new FirefoxDriver 
    try { 
     new WithApplication(
     new FakeApplication(additionalConfiguration = Map("application.secret" -> "secret"))) { 
     f(driver) 
     } 
    } finally { 
     driver.quit 
    } 
    } 
} 

Он не показывает компиляции ошибка в Eclipse. Но когда я выполняю команду test, она показывает a very long error message. Это первая линия ошибки:

symbol value f$1 does not exist in test.FunctionalSpec$$anon$1$delayedInit$body.apply

Я пытался играть вокруг немного, изменяя код, как показано ниже:

def withDriver(f: FirefoxDriver => Unit) = { 
    val driver = new FirefoxDriver 
    try { 
     val g = f 
     val driver2 = driver 
     new WithApplication(
     new FakeApplication(additionalConfiguration = Map("application.secret" -> "secret"))) { 
     val h = g 
     val driver3 = driver2 
     h(driver3) 
     } 
    } finally { 
     driver.quit 
    } 
    } 

Там нет ошибок, брошенных, когда я выполнил команду test. Любая идея, что происходит? Есть ли какой-либо предел того, насколько глубоким может быть блок кода, чтобы распознавать идентификаторы?

EDIT: Используя мой модифицированный код, приведенный выше, в runtime-error. Я добавил код ниже:

"The admin" should "be able to login and logout correctly" in withDriver { implicit driver => 
    // Don't do anything yet. 
} 

Это один отображается в одной строке сообщений во время выполнения ошибок:

Cause: java.lang.NoSuchFieldError: g$1

Любые предложения для обхода?

ДОПОЛНИТЕЛЬНОЕ ПРИМЕЧАНИЕ: Все коды выше компилируются просто отлично. Ни Eclipse, ни scalac не жалуются. Все ошибки выше происходят только тогда, когда я делаю команду test из командной оболочки Play.

+0

могли бы вы предоставить целая трассировка стека? Я подозреваю, что в тестовой среде есть ошибка. –

+0

Привет Радо. Спасибо за ответ. Фактически я предоставил всю трассировку стека в указанной выше ссылке и не ставил их здесь, потому что они просто просто _very long_. Позвольте мне снова добавить ссылки: - [Перед изменением] (http://pastebin.com/FkJJU7UR). - [После модификации] (http://pastebin.com/a4VSgSuP). –

+0

могут быть связаны с https://github.com/scalatest/scalatest/issues/620 – cvogt

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^