7

SBT は、 specs2Spray-testkitを使用した、より大きな受け入れスタイルのテストのいくつかでメモリ不足になり続けます。10 ギガまたは RAM が利用可能で、現在、MaxPermSize を 512m、Xms を 1024m、Xmx を 2g でSBT を ( SBT エクストラ スクリプトを使用して) 開始しています。

受け入れテストは、クライアントのビジネス プロセス全体を通じて特定の順序で実行されるため、受け入れテストを複数の小さなテストに分割することは容易ではありません。

自分の環境をより適切に構成する方法や、注意すべき落とし穴についてのアイデアをいただければ幸いです。

価値があるのは、UbuntuでOracle Javaを使用しており、プロジェクトではScala 2.10、sbt 0.12.2、spray 1.1-M7 with specs2 1.14を使用していることです。

テスト外でシステムを実行する場合、または小規模なテストを使用する場合、すべてが時計仕掛けのように実行されます。物事がうまくいかないのは、大規模なテストの間だけです。

4

2 に答える 2

7

できることの 1 つは、テストをフォークすることです。build.sbt でメモリ設定を直接設定できます。

fork in Test := true

javaOptions in Test += "-Xmx2048m" // we need lots of heap space

これは、テストが SBT エクストラ スクリプトの実行に依存せず、設定が sbt 自体に影響を与えないことを意味します。作業ディレクトリの変更や、使用する JRE の変更など、その他のさまざまなオプションを設定することもできます ( Forkingを参照)。

于 2013-03-20T12:13:55.880 に答える
2

specs2 の不変スタイルで指数関数的な問題に直面していると思われます。解決策は、単にメモリを追加するか、テストを小さなチャンクに分割することです。詳細はこちら:

http://www.artima.com/articles/compile_time.html

于 2013-03-20T23:20:09.710 に答える