1

「フラグメント評価エラー」が何を意味するのか、または解決策を探す場所を教えてもらえますか? 私は時々(常にではありませんが)これらのエラーをたくさん受け取ります(コードを変更せずに):

[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)

PostSpec の 68 行目は、Post モデル コンパニオン オブジェクトを参照する (specs2) テストの最初の行です。

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] { ... }
4

1 に答える 1

2

specs2 仕様でFragmentsは、仕様の一部です。AFragmentは、a TextExamplea、a のいずれかStepです。

Exampleやのような一部のフラグメントは、Step実行されることを意図しており、失敗としてマークできるように例外をキャッチすることになっています。しかし、それらは s をキャッチしませんError(s を除くAssertionError)。そのため、例が をスローするOutOfMemoryErrorと、これは Fragment 評価エラーとして報告されます。

フラグメントのような他のフラグメントは、Text評価時に例外をスローすることは想定されていません。その場合、同じFragment evaluation errorメッセージが表示されます。

完全な仕様を見ないと、そこで何が起こっているのかを言うのは難しいですが、 の本体で例外以外の型がスローされたのではないかと思いますExample。しかし、今のところ、答えよりも多くの質問があります。

  • どこでtest4宣言されていますか?仕様のボディ内部?Contextケースクラスの中?
  • エラーは断続的に発生するため、常に適切な mongodb コンテキストがあると確信していますか? 仕様の例が同じmongo dbインスタンスで同時に実行されている可能性がありますか?
于 2011-09-14T23:02:30.007 に答える