CI에서 특정 테스트가 어떤 날은 통과하고 어떤 날은 실패합니다. 코드는 하나도 안 건드렸는데요. 로컬에서 그 테스트만 단독으로 돌리면 항상 통과하는데, 전체 돌리거나 CI에서는 가끔 깨져요.
대충 이런 느낌의 테스트입니다.
doSomethingAsync()
sleep(100)
assert(result == expected)
실패할 때 로그 보면 값이 아직 안 들어와 있는 경우도 있고, 어떨 땐 앞 테스트가 남긴 데이터 때문에 깨지는 것 같기도 하고 패턴이 일정하질 않네요. 재현이 안 되니까 디버깅도 막막합니다.
이런 간헐적으로 깨지는 테스트는 보통 뭐가 원인이고, 어떻게 잡아야 하나요? sleep 시간을 더 늘리면 되나 싶기도 한데 그건 근본 해결은 아닌 것 같아서요.