2013-05-05 21 views
9

Im làm việc với SBT và Chơi! Khung. Hiện tại chúng tôi có một giai đoạn cam kết trong kênh của chúng tôi, nơi chúng tôi xuất bản để tạo thành các tệp nhị phân của chúng tôi. Các tập tin nhị phân được tạo ra với nhiệm vụ phân biệt. Các đường ống sau đó chạy thử nghiệm khói và chấp nhận được viết bằng scala. Chúng được chạy với sbt.Biên dịch thử nghiệm với SBT và đóng gói chúng để chạy sau

Điều tôi muốn làm là biên dịch các thử nghiệm khói và chấp nhận cũng như kiểm tra nhị phân và xuất bản chúng thành tạo phẩm. Điều đó sẽ cho phép các đường ống để tải về các tập tin nhị phân (các bộ thử nghiệm) và chạy chúng, thay vì biên dịch lại chúng mỗi lần, mà phải mất một thời gian dài.

Tôi đã thử kiểm tra sbt: biên dịch tạo ra các jar, nhưng sau đó tôi không thể tìm thấy một cách để chạy các bài kiểm tra.

+0

Ý anh là gì bởi "đường ống" chính xác? "Đường ống" có đề cập đến một máy chủ xây dựng riêng biệt, như Jenkins không? –

+0

Có, chúng tôi có một đường ống triển khai được quản lý bởi Jenkins. Những gì nó làm là nó tải các mã bất cứ khi nào ai đó đẩy để làm chủ, chạy thử nghiệm trên nó và nếu thành công, xây dựng nhị phân với nhiệm vụ dist. Sau đó, nó tiến hành xuất bản nó lên Artifactory. – dgrandes

+0

Tôi không hiểu tại sao bạn không chỉ chạy cả bản dựng và thử nghiệm trên cùng một nút xây dựng, cả hai đều sử dụng sbt. Ngoài ra, các thử nghiệm của tôi mất nhiều thời gian để chạy hơn là biên dịch, vì vậy tôi ngạc nhiên rằng bạn là người ngược lại. –

Trả lời

11

SBT không công bố thử nghiệm trong vật

publishArtifact in GlobalScope in Test:== false 

nguồn: https://github.com/sbt/sbt/blob/a7413f6415687f32e6365598680f3bb8545c46b5/main/src/main/scala/sbt/Defaults.scala#L1118

đây là làm thế nào để kích hoạt nó

// enable publishing the jar produced by `test:package` 
publishArtifact in (Test, packageBin) := true 

// enable publishing the test API jar 
publishArtifact in (Test, packageDoc) := true 

// enable publishing the test sources jar 
publishArtifact in (Test, packageSrc) := true 

nguồn: http://www.scala-sbt.org/release/docs/Detailed-Topics/Artifacts

chạy thử nghiệm

scala -classpath pipeline.jar classpath scalatest-<version>.jar org.scalatest.tools.Runner -p compiled_tests 

nơi pipeline.jar là vật thử nghiệm bạn nhận được từ các đường ống dẫn

hoặc bạn có thể thiết lập một projet kiểm tra qua SBT

http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing.html

+0

Vì vậy, tôi thực sự đã quản lý để có được điều đó. Những gì Im tạo ra với thử nghiệm: nhiệm vụ gói là một cái bình. Bây giờ tôi gặp sự cố khi chạy nó. Nó nói rằng nó không thể tìm thấy các lớp học chính. Whats lớp học chính của toàn bộ bộ thử nghiệm của tôi? – dgrandes

+0

qua nhân vật phụ (http://www.scalatest.org/user_guide/using_the_runner) xem chỉnh sửa –

+0

@dgrandes được giải quyết? –

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