less than 1 minute read

Elixir에서 자식 프로젝트가 여러 개 있는 프로젝트를 Umbrella projects라고 부른다. C++/C#에서 프로젝트가 여러 개 있는 솔루션과 비슷하다. mix test 태스크를 실행하면 하위 프로젝트에 있는 test가 차례로 실행된다. 테스트가 실패하면 에러 exit code가 세팅되긴 하지만 실패한 테스트 로그를 보기가 힘들다. 스크롤을 한참 올려야 한다.

간단히 우회하기로 했다. 실패한 테스트를 한 번 더 돌리는 것이다.

mix test || true
mix test --failed

이렇게 하면 Flaky test(깨지기 쉬운 테스트)가 통과될 수 있는 사이드 이팩트가 있다. 실패한 테스트를 한 번 더 돌려서 통과되는 건 대수롭지 않다. 언젠가는 실패한 테스트를 다시 돌릴 때도 실패하게 될 것이고 그때 확인해서 고치면 된다.

좀 더 나은 방법이 있을 텐데, 지금은 이렇게 깨진 테스트를 편하게 확인하고 있다. Test Reporter GitHub 액션을 사용해도 되지만 아직은 텍스트로 출력하는 게 편하다. 로컬 테스트도 그렇고.