WSL2를 사용하여 Windows 호스트의 Rubbymine에서 Rspec 실행


Rails가 개발되었을 때 Jetbrains의 IDE'Rubbymine'은 여러 해 동안 편리하게 사용되었다.
또 도커 사용으로 페니실린 환경을 오염시키지 않을 수도 있고, 중간부품과 라일스를 업그레이드할 때 용기를 교체해 환경을 바꿀 수도 있는 등 편리한 시대에 접어들었다.
docker를 사용하면 리눅스 컨테이너(LXC)가 로컬에서 사용할 수 있는 리눅스는 가장 걸려 넘어지지 않는다.macOS는 Docker for mac을 직접 사용하면 느리다. WSL2는 있지만 Rubbymine부터 Rspec을 실행하면 오류가 발생할 것 같아 리눅스 데스크톱에서 개발했다.
이 글은 윈도 10에서 WSL2를 사용하고 윈도 호스트의 루비마인에서 윈도 파일 시스템의 개발 원본을 수정하면서 WSL2 내의 docker 용기에 있는 루비와 rspec gem에서 Rspec을 어떻게 실행하는지 정리했다.
우연히 할 기회가 있었지만 곧 잊어버릴 것 같아서 미리 적어 두었다.

터미널이 아닌 Rubbymine에서 Rspec 실행


일반적으로 터미널에서 명령선으로 실행하는 것은 당연히 WSL2를 사용할 수 있다.
그렇지 않습니다. IDE로서의 루비마인에 결과 실행 창에 스펙마다 해당하는 원본 파일로 날아갈 수 있는 기능을 사용하려고 합니다.
公式サイト記載のイメージ画像
이 페이지: 테스트 결과 표시 및 조사 | Ruby Mine

다양한 버전 사용

  • Windows 10 호스트/버전: 21H2/구축: 19044.1586
  • Docker Desktop for Windows 3.5.2 (66501)
  • 루비mine 20221.3.33(2022/04/07시 최신 버전)
  • 전제 조건

  • 루비마인에 재파네스 랭거페이지 팩을 넣었다.
  • WSL2용 Linux로 가정하고 "Ubuntu-20.04"를 추가한 후 사용한다.
  • Rspec을 실행할 소스 파일은 다음 경로로 가정합니다.
  • C:\Users\hogehoge\development\sample-rails
  • docker-compose.yml의 컨테이너에 전시되었는데 rails의 컨테이너 이름은'웹'이다.
  • 절차.


    아직 이 정도는 아니지만 다음 순서대로 완성했다.
  • Windows의 Rubbymine 활용
  • Windows 파일 시스템에서 소스 파일 열기
  • WSL2에서 Windwos 파일 시스템의 원본에 접근하여 docker 용기를 시작합니다
  • Rubymine에서 다양한 설정
  • Rubymine에서 Rspec
  • 실행
    차례대로 설명하다.

    1. Windows의 Rubbymine 사용


    일반적으로 Windows에서 Rubbymine을 다운로드하고 설치한 후 시작합니다.
    공식 홈페이지: RubbyMine: JetBrains의 Rubi on Rails IDE
    公式サイトによる起動イメージ

    2. Windows 파일 시스템의 소스 파일 열기


    Rspec을 실행하려는 소스 파일 그룹에 대해서는 Windows 파일 시스템에 구성하고 Rubbymine에서 엽니다.
    예를 들어, C:\Users\hogehoge\development\sample-rails를 엽니다.

    3. WSL2에서 Windows 파일 시스템의 소스에 액세스하여 docker 컨테이너를 시작합니다.


    Windows Terminal 또는 WSL2에서 사용하는 "Ubuntu-20.04"를 시작하여 WSL2 내의 Linux에서 Windows의 원본 파일에 액세스합니다.
    리눅스에는 샘플 경로를 전제로 다음 명령이 있습니다.
    cd /mnt/c/Users/hogehoge/development/sample-rails
    
    docker 컨테이너를 가동합니다.
    우리는 docker-compose를 사용한다고 가정한다.docker-compose 버전 등에서 명령줄이 변경됩니다. 사용한 버전과 일치하는 명령을 사용해서 시작하십시오.
    다음은 명령 집행례다.
    # docker-compose でコンテナ達をサービスとして起動
    docker-compose up -d
    
    # 以下は適宜
    # bundle install (/path/to/app は適宜書き換えてください。)
    docker-compose exec web /path/to/app/bin/bundle install
    
    # dev serverの起動 (/path/to/app は適宜書き換えてください。)
    docker-compose exec web /path/to/app/bin/bundle exec rails s -b 0.0.0.0
    

    4. 루비마인에 다양한 설정


    Rubbymine에서는 다음과 같은 설정이 필요합니다.
  • docker
  • 에 액세스
  • remote 환경의docker에 접근하는 용기
  • 따로따로 해설하다.

    4-1. Rubbymine 설정:docker


    설정 > 구문, 실행, 디버깅 > Docker를 엽니다.

    위에서 설명한 대로 Windows 용 Docker를 선택합니다.
    오른쪽 아래에는 연결 완료가 표시됩니다.

    4-2. Rubbymine 설정:remote 환경으로 docker 내 컨테이너에 액세스


    설정 > 언어 & 프레임워크 열기 > Ruby SDK 및 Gem.

    위에서 설명한 대로 + 버튼 > 새 원격입니다.탭

    열린 창에서 "Docker Compose"("WSL"이 아님)를 선택하고, 서비스 섹션에서 Rails의 컨테이너 "웹"을 선택하고, OK.

    읽는 데 시간이 걸리고 정상적으로 읽으면 창이 닫히고 원래 창으로 돌아가며 왼쪽 창에'Remote:rubyX.X-pXXX(docker-compose:/~)'같은 내용이 추가되어 선택 상태로 들어갑니다.
    오른쪽 창에서 "rspec"gem을 읽었는지 확인하면 OK입니다.

    구성 창의 설정이 끝났습니다.

    5. Rubbymine에서 Rspec 실행


    Rspec을 실행하려면 실행 구성을 설정해야 합니다.
    우선 여기서 Rspec 디렉토리 아래의 모든 spec 구성을 실행하는 예를 들어 설정합니다.
    Rubbymine에서는 일반적으로 오른쪽 위에 있는 디버깅 섹션에서 실행 구성 편집을 클릭합니다.

    구성 실행 창을 연 후 왼쪽 상단에 있는 "+"단추 > Rspec을 선택하십시오.

    다음과 같이 설정합니다.
    항목

    이름:
    Rspec All(모든 이름)
    패턴
    폴더의 모든 사양
    사양 폴더
    소스의 rspec 폴더 경로 지정하기
    파일 이름 마스크
    **/*_spec.rb
    Ruby SDK
    유효한 (위에서 설정한 원격 SDK 지정)
    docker-compose
    docker-compose exec

    그런 다음 Rspec을 실행하면 맨 아래 Run 창에서 Rspec을 실행해야 합니다.

    주의


    셸 스크립트 파일과 같은 줄 바꿈을 LF로 설정합니다.


    매번 docker-compose up -d,docker compose exec web bundler install하기 귀찮아서 조개 스크립트로 여러 가지 조작을 했지만 행 코드가 CR+LF로 바뀌면 오류가 발생할 수 있습니다.
    LF로 통일하기 위해서는 미리 git config --global core.autocrlf true하는 게 좋을 것 같아요.

    슈팅


    /bin/bundler를 실행할 때 "/usr/bin/env:"ruby": No such file or directory"가 나타납니다.

    docker-compose exec web bundler /path/to/app/bin/bundler install 등에서는 "/usr/bin/env:"ruby": No such file or directory"와 같은 오류가 발생할 수 있습니다.'ruby\r'이기 때문에'/path/to/app/bundler'파일의 행 코드가 CR+LF로 바뀌어 발생한 오류도 예측할 수 있습니다.이쪽도 LF로 전환하면 해제됩니다.

    좋은 웹페이지 즐겨찾기