Tổ chức là tùy thuộc vào bạn. Bạn có thể tạo một cây thư mục riêng biệt cho các bài kiểm tra tích hợp, có các tệp riêng biệt trong cùng một cây thư mục hoặc có các bài kiểm tra đơn vị và kiểm tra tích hợp trong cùng một tệp nguồn thử nghiệm.
Sự khác biệt thực duy nhất giữa đơn vị & thử nghiệm hội nhập là
- họ mất bao lâu để chạy
- tắm thiết lập với phần khác của hệ thống của bạn (điều này cũng có nghĩa họ đang chậm và/hoặc khó khăn hơn để chạy).
Vì vậy, một trong hai cách kiểm tra tích hợp phải được gắn nhãn với ^:integration
siêu dữ liệu trên mỗi hàm. Kỹ thuật này cũng hữu ích với các bài kiểm tra đơn vị "chậm".
A "chậm" thử nghiệm có thể được đánh dấu như thế này (trong đó sử dụng clojure.test.check
thử nghiệm sinh sản):
(tst/defspec ^:slow round-trip-bytes 9999
(prop/for-all [orig gen/bytes]
(let [string-b64 (b64/encode-bytes->str orig)
result (b64/decode-str->bytes string-b64) ]
(assert (every? b64/base64-chars (seq string-b64)))
(assert (types/byte-array? result))
(= (seq orig) (seq result)))))
Sau đó, trong bạn project.clj
(không khởi động, tôi biết), ghi rõ:
:test-selectors { :default (complement :slow)
:slow :slow }
Sau đó, khi bạn nói lein run
các bài kiểm tra được đánh dấu bằng ^:slow
sẽ bị bỏ qua và khi bạn nói lein run :all
tất cả các bài kiểm tra (bao gồm cả các bài kiểm tra "chậm") sẽ được chạy.
Lưu ý rằng không có gì đặc biệt về từ khóa :slow
. Bạn có thể thay thế bất kỳ từ khóa nào bạn muốn, chẳng hạn như :integration
.
Tôi chưa sử dụng boot
nhiều nhưng tôi cho rằng có sẵn một kỹ thuật tương tự.
Nguồn
2016-12-10 20:11:06
Theo như tôi biết đây không phải là một cái gì đó tồn tại tại thời điểm khởi động, nhưng tôi thích ý tưởng. – nha