2013-03-20 26 views
6

SBT tiếp tục hết bộ nhớ trong một số thử nghiệm kiểu chấp nhận lớn hơn của tôi bằng cách sử dụng specs2spray-testkit. Tôi có 10 hợp đồng biểu diễn hoặc RAM có sẵn và hiện tại tôi bắt đầu SBT (sử dụng SBT extras script) với MaxPermSize ở 512m, Xms ở 1024m và Xmx ở 2g.Cài đặt bộ nhớ JVM cho thông số kỹ thuật2

Kiểm tra chấp nhận chạy qua toàn bộ quy trình nghiệp vụ của khách hàng theo trình tự cụ thể, do đó không dễ dàng tách thử nghiệm chấp nhận thành nhiều thử nghiệm nhỏ hơn.

Bất kỳ ý tưởng nào về cách tôi có thể định cấu hình môi trường của mình tốt hơn, hoặc những thứ mà tôi nên tìm kiếm sẽ được đánh giá cao.

Đối với những gì đáng giá, tôi đang sử dụng Oracle Java trong Ubuntu, và dự án sử dụng Scala 2.10, sbt 0.12.2, phun 1.1-M7 với specs2 1.14.

Khi chạy hệ thống ngoài kiểm tra hoặc khi sử dụng các kiểm tra nhỏ hơn, mọi thứ đều chạy như đồng hồ. Nó chỉ trong các thử nghiệm lớn hơn mà mọi thứ trở nên hấp dẫn.

Trả lời

2

Tôi nghi ngờ bạn đang gặp sự cố theo cấp số mũ với kiểu specs2 không thay đổi. Giải pháp đơn giản là thêm nhiều bộ nhớ hơn hoặc phá vỡ các bài kiểm tra của bạn thành các phần nhỏ hơn. Thông tin khác có tại đây:

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

6

Một điều bạn có thể làm là đến ngã ba bài kiểm tra, bạn có thể thiết lập các thiết lập bộ nhớ của bạn trong build.sbt trực tiếp:

fork in Test := true 

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

Điều này có nghĩa rằng các cuộc thử nghiệm không phụ thuộc vào bạn chạy với SBT kịch bản bổ sung và cài đặt không ảnh hưởng đến chính sbt. Bạn cũng có thể thiết lập các tùy chọn khác (xem Forking), bao gồm việc thay đổi thư mục làm việc và thậm chí là JRE để sử dụng.

+0

+1 Rất hữu ích, cảm ơn. – Jack

+0

liên quan chặt chẽ đến http://stackoverflow.com/questions/3868863/how-to-specify-jvm-maximum-heap-size-xmx-for-running-an-application-with-run/14561346#14561346 – iwein

+0

đưa tôi một phút để nhận ra bạn cần một đường thẳng giữa hai thứ đó. –

Các vấn đề liên quan