라라벨 시프트와 테스트 제너레이터 사용기 1편 free

2019-08-19

7월호 마지막 글인 “기존 벨 애플리케이션 테스트에 소요되는 시간 줄이기”에서 소개했던 제이슨 맥크레리가 Confident Laravel 동영상 강좌를 오픈했습니다.


스크린샷 2019-08-19 오후 2.43.12.png


강좌 홈페이지서 말하기를 벨 시프트(사용중인 벨을 상위 버전으로 업데이트 해주는 서비스)를 사용한 1.5만개 애플리케이션 중 테스트를 작성한 애플리케이션은 고작 17%에 불과하다고 합니다. 제이슨은 테스트를 작성하지 않는 원인을 두 가지로 꼽습니다. 하나는 시간이 부족한 것이고 다른 하나는 어디서 부터 시작해야할 지 모르는 것입니다.


이번에 오픈한 Confident Laravel 강좌는 두번째 이유를 해결 해주기 위한 것입니다. 여러분이 참여하고 있는 벨 프로젝트에 테스트를 도입할 생각이 있다면 한 번 보시는 것도 좋을 것 같아요. 테스트에 익숙한 사람도 기존 프로젝트에 테스트를 도입하는 건 쉽지 않은 시행착오를 많이 줄이고 노하우를 얻을 수 있지 않을까 합니다.


제이슨은 첫번째 원인을 해결할 서비스도 벨 시프트에 추가했다고 했는데요, 바로 테스트 제너레이터 시프트 입니다.


테스트 제너레이터 시프트는 유료 서비스인데요, 마침 제가 운영중인 애플리케이션 중에 테스트가 하나도 작성되지 않은 애플리케이션이 있어서, 소개도 하고 체험도 할 겸 테스트 제너레이터를 한 번 써보았습니다. :)


스크린샷 2019-08-19 오후 2.43.22.png


우측 상단에 Purchase Shift $15 버튼을 누르면 결제창으로 이동하고, 카드 정보만 넣으면 바로 결제됩니다. 항상 느끼지만 해외 서비스는 이래도 되나 싶을 정도로 결제가 쉽죠.


구매를 하고나면 github과 연동해서 어떤 프로젝트의 어떤 브랜치에 적용할 건지를 고르는 화면이 나오는데, 캡쳐하는 걸 깜빡했네요. 아래 화면과 거의 비슷합니다. 뭐 간단합니다.


스크린샷 2019-08-19 오후 3.19.42.png


저장소와 브랜치 정보를 입력하면 바로 실행이 되는데, 저는 실패했다며 메이 왔습니다.


스크린샷 2019-08-19 오후 4.00.26.png


테스트 제너레이터는 세가지 조건을 만족해야 실행됩니다.



  • 벨 5.8.25 이상

  • composer install 을 실행 할 수 있을 것

  • artisan route:list 를 실행했을 때 에러가 안날 것


확인해보니 제 애플리케이션이 5.6.35를 쓰고 있었습니다.


스크린샷 2019-08-19 오후 2.50.30.png


5.8.25 이상 버전이 필요한데.. 언제 업데이트하나.. 빨리 써보고 싶은데… 이번 기회에 벨 시프트도 체험해보기로 합니다! (자연스럽게 연쇄 결제로 연결되는.. 빅픽처 끝내주네요!)


스크린샷 2019-08-19 오후 2.53.32.png


5.6에서 한 번에 5.8로는 업데이트를 안해줍니다. 5.6에서 5.7로는 13 달러, 5.7에서 5.8로는 9달러네요. 어느새 예산은 두 배 초과. 질러질러~


결제를 하면 1분도 안되서 깃헙 저장소에 업데이트를 적용한 브랜치를 만들어줍니다. 안내에 따 몇가지 절차를 더 밟으면 업데이트가 완료됩니다.


스크린샷 2019-08-19 오후 2.56.24.png


절차는 깃헙에 댓글로 달아줍니다.


시프트에서 만들어준 브랜치를 제 컴퓨터에 체크아웃하고 벨을 업데이트 하기 위해 composer update 를 실행합니다.


스크린샷 2019-08-19 오후 3.01.50.png


한 번에 되는게 없네요. ^^ 제가 쓰던 패키지 중에 벨 5.7과 호환되지 않는 패키지가 있어서 설치가 중단되었습니다. rap2hpoutre/fast-excel 이는 패키지였는데요, 패키지스트에서 확인해보니 최신 버전인 1.2.2가 벨 5.5 이후 버전을 모두 지원하네요.


스크린샷 2019-08-19 오후 3.05.31.png


composer.json에서 해당 항목의 의존성을 ^1.2.2로 바꾼 뒤 다시 composer update하니 문제없이 완료되었습니다. (8월호부터 구독하시는 분들은 7월호의 ‘의존성 충돌 해결하기’를 참고하시면 도움이 될거에요. 7월호 보는 기능은 짬짬이 만들고 있으니 조그만 기다려주세요.)


5.7로 업데이트는 됐고, 이제 5.8로 업데이트 할 차례입니다. 실제 운용되고 있는 애플리케이션이기 때문에 테스트를 좀 하고 master에 반영할 필요가 있습니다. 그런데 아직 테스트를 하나도 작성해둔게 없어서 이 손으로 확인하기도 어렵고, 테스트 제너레이터가 테스트 만들어주면 그 덕도 보고 싶으니 단 더 진행해보기로 합니다. 그래서 시프트에서 만든 브랜치를 그대로 깃헙에 푸시하고, 이 브랜치를 업데이트하기로 결정했습니다.


스크린샷 2019-08-19 오후 3.20.14.png


5.7로 올리는건 잘 되었는데, 5.8은 실패하네요. 왜인가 싶어 봤더니 ㅠ 프로젝트명은 그대로 유지하고 브랜치명을 다르게 신청했어야 했는데, 실수로 프로젝트명에 브랜치명을 넣었지 뭡니까.


시프트 서비스는 두 번 실패하면 그 뒤로는 제이슨에게 이메로 요청을 해야합니다. 사람이 응대해야하다보니 바로바로 처리가 안되는 듯 해요. 그러니 안내문을 꼼꼼히 읽고 신중하게 실행할 필요가 있는 것 같습니다. 나중에 시프트 서비스를 쓸 계획이 있는 분들은 참고하세요.


원래 오늘 테스트 제너레이터까지 다 써보고 사용기를 작성하고 싶었는데, 메 답장이 안와서 어쩔 수 없이 두 편으로 나눠서 갑니다. 해결되는대로 2편을 가지고 올께요!


1 1 벨 35호
2019년 8월 19



이현석

메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 2020년에 출간될 Laravel Up & Running 2nd Edition을 번역하고 있습니다.