Ошибка оценки фрагмента - PullRequest
       8

Ошибка оценки фрагмента

1 голос
/ 14 сентября 2011

Может кто-нибудь сказать мне, что означает "Ошибка оценки фрагмента", или где я мог бы искать решения? Иногда я (но не всегда) получаю множество таких ошибок (без изменения моего кода):

[error] ! Fragment evaluation error
[error]     ThrowableException: Could not initialize class code.model.Post$  (FutureTask.java:138)
[error] code.model.PostSpec$$anonfun$1$$anonfun$apply$1.apply$mcZ$sp(PostSpec.scala:68)
[error] code.model.PostSpec$$anonfun$1$$anonfun$apply$1.apply(PostSpec.scala:51)
[error] code.model.PostSpec$$anonfun$1$$anonfun$apply$1.apply(PostSpec.scala:51)

Строка 68 PostSpec - это первая строка в тесте (specs2), которая ссылается на объект-компаньон модели Post:

val test4 = Post.fixJValue(toextract4).extract[Selection]

Я использую Scala 2.9.0-1.

Также: я понятия не имею, имеет ли это значение, но Post является объектом-компаньоном класса net.liftweb.mongodb.record.MongoRecord:

object Post extends Post with MongoMetaRecord[Post] { ... }

1 Ответ

2 голосов
/ 15 сентября 2011

В спецификации specs2 Fragments являются частями спецификации.Fragment может быть Text, Example, Step.

. Некоторые фрагменты, такие как Example и Step, предназначены для выполнения и должны перехватывать исключения, так чточто они могут быть отмечены как неудачи.Но они не поймают Error с (кроме AssertionError с).Поэтому, если в примере выдается OutOfMemoryError, это будет сообщено как ошибка оценки фрагмента.

Другие фрагменты, например, фрагменты Text, не должны генерировать исключения при оценке.Если они это сделают, вы получите то же самое сообщение Fragment evaluation error.

Не видя полной спецификации, мне трудно сказать, что там происходит, но я подозреваю, что в теле вы добавили неисключительный типExample.Но у меня сейчас больше вопросов, чем ответов:

  • где объявлено test4?Внутри тела спецификации?Внутри Context класса case?
  • , поскольку ошибки происходят периодически, вы уверены, что у вас всегда есть правильный контекст mongodb?Может быть, ваши примеры спецификаций выполняются одновременно на одном экземпляре mongo db?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...