Tôi biết tôi có thể thêm cài đặt và mã ngẫu nhiên trong SBT cho giai đoạn thử nghiệm bằng cách sửa đổi testOptions, ví dụ:scala chạy thử SBT cài đặt và lệnh dọn dẹp một lần vào nhiều dự án
val embedMongoTestSettings: Seq[Setting[_]] = Seq(
testOptions in Test += Tests.Setup(() => createMongod()),
testOptions in Test += Tests.Cleanup(() => destroyMongod())
)
Vấn đề là tôi có điều này được thực hiện trên cơ sở từng dự án và sau đó được thực hiện một lần cho mỗi dự án. Vì vậy, khi tôi có một dự án đa được thiết lập, tôi kích hoạt một số cơ sở dữ liệu trong trường hợp này (có thể hoạt động, nhưng có nghĩa là tôi phải định cấu hình cho mỗi cổng dự án, v.v.).
Có cách nào trong sbt đảm bảo rằng các bước nhất định chỉ chạy một lần cho bất kỳ giai đoạn thử nghiệm nào, cho dù đó là cho nhiều dự án, một dự án hay một trường hợp thử nghiệm?
Cách duy nhất tôi tính là tự quản lý đồng thời trong các phần thiết lập và dọn dẹp, do đó, hãy giữ một bộ đếm toàn cục để kiểm tra xem nó có phải là lần đầu tiên hoặc lần cuối bị rách hay không.