2013-08-05 26 views
6

Với Á hậu junit-interface, có tùy chọn hữu ích này:Làm thế nào để chỉ hiển thị stdout của một thử nghiệm scalatest nếu nó không thành công

-q Suppress stdout để thử nghiệm thành công. Stderr được in trên bảng điều khiển bình thường. Stdout được ghi vào bộ đệm và bị loại bỏ khi thử nghiệm thành công. Nếu nó không thành công, bộ đệm sẽ được đổ xuống bàn điều khiển. Kể từ stdio chuyển hướng trong Java là một kludge xấu (System.setOut() thay đổi tĩnh trường cuối cùng System.out thông qua mã gốc) điều này có thể không hoạt động cho tất cả các trường hợp . Scala có giao diện điều khiển riêng với tính năng chuyển hướng lành mạnh. Nếu Scala được phát hiện trên đường dẫn lớp, giao diện junit cố gắng định tuyến lại stdout của scala.Console.

Tôi đã tự hỏi liệu có một cách dễ dàng để làm cho scalatest làm điều tương tự không. Tôi có thể cố gắng để chuyển hướng đầu ra bản thân mình nhưng muốn sử dụng một cái gì đó tiêu chuẩn nếu có thể.

+0

có lẽ nó không phải là chính xác những gì bạn muốn, nhưng có một cái nhìn vào câu trả lời của tôi http://stackoverflow.com/questions/21806312/how-to-configure-sbt-test-scalatest-to -only-show-failures – goozez

+0

Chúng tôi sử dụng maven. Bất kỳ giải pháp maven (non-sbt) nào có sẵn? – javadba

Trả lời

0

Theo info này trên trang web ScalaTest, bạn có thể thiết lập một số cờ để ngăn chặn một số tin nhắn:

Nếu bạn thêm một dòng như thế này trong build.sbt của bạn, logger của bạn sẽ không hiển thị kiểm tra thành công trong stdout :

testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-oN")