Khi có một tích hợp liên tục thực hiện các thử nghiệm ở mỗi lần xác nhận, một cách tốt nhất phổ biến là luôn có tất cả các thử nghiệm vượt qua (hay còn gọi là "không phá vỡ bản dựng").
Tôi tìm thấy một số vấn đề với điều đó:
Ví dụ, người ta không thể giúp một dự án nguồn mở bằng cách tạo các thử nghiệm tương ứng với vé. Tôi biết nếu tôi đề xuất Yêu cầu kéo đối với dự án nguồn mở chứa thử nghiệm thất bại, bản dựng sẽ được đánh dấu là không thành công và dự án sẽ không muốn hợp nhất vào kho lưu trữ của nó vì nó sẽ "phá vỡ bản dựng".
Và tôi không tin rằng việc thử nghiệm thất bại trong repo của bạn là một điều tồi tệ , nó giống như có vấn đề mở trong trình theo dõi của bạn. Đây chỉ là những điều chờ đợi để được sửa chữa.
Điều tương tự cũng xảy ra trong một công ty. Nếu bạn làm việc với TDD, bạn không thể viết bài kiểm tra, cam kết và sau đó viết mã logic hoàn thành bài kiểm tra. Điều đó có nghĩa là nếu tôi đã viết 4-5 bài kiểm tra trên máy tính xách tay của mình, tôi không thể cam kết chúng trước khi đi nghỉ. Không ai có thể lấy lại công việc của tôi. Tôi thậm chí không thể "chia sẻ" chúng với đồng nghiệp trừ khi gửi chúng qua email chẳng hạn. Nó cũng ngăn cản làm việc với một người viết các bài kiểm tra, người còn lại viết mô hình.
Tất cả điều đó để nói, tôi đang lạm dụng / hiểu sai quá trình xây dựng / tích hợp liên tục? Dường như với tôi rằng "vượt qua" / "không vượt qua" là một chỉ số quá hẹp.
Có cách nào để tích hợp liên tục và tương thích TDD không?
Có lẽ có một giải pháp / thực hành tiêu chuẩn để phân biệt "các thử nghiệm mới" (có thể thất bại) và "thử nghiệm hồi quy" ( không nên thất bại vì chúng đã từng làm việc)?