Это мой исходный код для тестирования:значение символа не существует в 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.
могли бы вы предоставить целая трассировка стека? Я подозреваю, что в тестовой среде есть ошибка. –
Привет Радо. Спасибо за ответ. Фактически я предоставил всю трассировку стека в указанной выше ссылке и не ставил их здесь, потому что они просто просто _very long_. Позвольте мне снова добавить ссылки: - [Перед изменением] (http://pastebin.com/FkJJU7UR). - [После модификации] (http://pastebin.com/a4VSgSuP). –
могут быть связаны с https://github.com/scalatest/scalatest/issues/620 – cvogt