2011-10-31 31 views
6

Sáng nay tôi chạy thử nghiệm và có 2 lỗi. Nhưng tôi đã không thay đổi bất kỳ mã nào trong vài ngày và tất cả các thử nghiệm đều được chuyển.Có thể thay đổi mã mà không cần Git biết về nó không?

Theo Git, không có thay đổi (ngoại trừ vùng phủ sóng.data, là kết quả thử nghiệm). gitk không có thay đổi nào khác.

Làm thế nào để Git biết khi nào mã thay đổi? Điều này có thể do lỗi/lỗi SSD không?

Cách tốt nhất để tìm hiểu điều gì đã xảy ra?

EDIT: Làm việc trong Ruby on Rails với khung kiểm tra Đơn vị.

+4

Vì ngày hôm nay không thành công, hãy xem đó có phải là một số vấn đề về ngày vào ngày cuối cùng của tháng hay không, đặc biệt là một ngày có 31 ngày. – manojlds

+0

Đó là nó. Không hoạt động vào ngày cuối cùng của tháng. –

Trả lời

10

Tôi bắt đầu bằng cách tìm ra lý do tại sao các thử nghiệm không thành công và có thể cung cấp cho bạn một số manh mối về cách chúng có thể đã trôi qua trước đó. Đôi khi đó là vấn đề về thời gian, thất bại liên tục, thứ gì đó bên ngoài bộ phận thử nghiệm, thay đổi dữ liệu, thay đổi ngày hoặc giờ, mọi loại nội dung.

+0

Vâng, đó là vấn đề về thời gian. Tính Date.today - 6.months + 6.months. Không vào ngày cuối cùng của tháng có 31 ngày! (Cũng như ngày 29 tháng 8 (trên những năm không nhuận) và 30, tôi nghĩ vậy). –

+2

Bạn đã đúng về điều đó. Khi tôi chạy 'DateTime.Today.AddMonths (-6) .AddMonths (6) .ToShortDateString();' bên dưới trình gỡ lỗi, tôi nhận được '30/10/2011' - Có vẻ như khi tôi trừ 6mon, tôi sẽ quay lại đến ngày 30 tháng 4 (kể từ tháng Tư không có ngày 31), nhưng sau đó khi tôi thêm 6mon vào đó, tôi sẽ nhận được ngày 30 tháng 10. Tôi đoán điều này có ý nghĩa. –

2

Kho lưu trữ của bạn không thể có bất kỳ thay đổi nào mà Git không biết và đăng nhập ở đâu đó vì cần phải truy xuất nhật ký để có thể lấy các tệp repo. Tôi sẽ kiểm tra để thấy rằng những thất bại không phải là do một cái gì đó trên máy mà không nên chạy cùng một lúc như các xét nghiệm hoặc nó có thể có thể là một điều kiện chủng tộc mà bạn không mong đợi.

9

Tôi thấy Mike đã tìm thấy sự cố của bạn (vui lòng chọn hộp câu trả lời nhỏ).

Có, bạn có thể thay đổi mã mà không cần Git biết về nó. Tệp gây ra lỗi, có thể là tệp thử nghiệm hoặc lịch thi đấu tạm thời, có thể bị bỏ qua trong .gitignore hoặc .git/info/exclude. Thực hiện git clean -dxf sẽ xóa sạch thanh toán của bất kỳ thứ gì không được biết đến với git. git status --ignored sẽ hiển thị các tệp bị bỏ qua bởi git. Nếu trường hợp đó xảy ra, bạn muốn thêm dọn dẹp thử nghiệm tốt hơn như một phần của thử nghiệm của bạn.

Đối với hậu thế, đây là danh sách ngắn của các bài kiểm tra cách có thể thất bại mà không có được bất kỳ sự thay đổi mã có thể nhìn thấy git:

  • "Tạm thời" file thử nghiệm và đồ đạc có thể bị bẩn.
  • Cơ sở dữ liệu và bảng "tạm thời" có thể bị bẩn.
  • Rất nhạy cảm với thời gian hoặc ngày tháng.
  • Sử dụng tài nguyên mạng và chúng đã thay đổi.
  • Trình biên dịch đã được thay đổi.
  • Thư viện đã cài đặt được sử dụng đã được thay đổi.
    • Thư viện sử dụng thư viện đã được thay đổi.
  • Hạt nhân đã được thay đổi.
  • Bất kỳ máy chủ nào được sử dụng (cơ sở dữ liệu, máy chủ web, v.v ...) đều đã được thay đổi.
  • Nó sử dụng xử lý song song và một lỗi nhỏ chỉ thỉnh thoảng xảy ra.
  • Đĩa (hoặc hệ thống tệp nơi tệp tạm thời) đã đầy.
  • Đĩa (hoặc hệ thống tệp nơi tệp tạm thời) bị hỏng.
  • Dung lượng bộ nhớ/đĩa/quy trình/tệp đã giảm.
  • Máy đã hết bộ nhớ.
  • Máy đã hết filehandhand.
  • Nó sử dụng đồ đạc có dữ liệu được tạo ngẫu nhiên và tạo ra một số dữ liệu bị lỗi.
Các vấn đề liên quan