2016-07-07 3 views
0

이것은 아마도 noobie 질문 일 뿐이지 만 Ruby 프로젝트에서 작업 중이며 이제로드 된 웹 페이지를 읽어야하는 몇 가지 테스트를 위해 localhost에서 일부 파일을 제공해야합니다. 장소 상에서. 나는 그것에 대해 gulp을 사용하고 있지만 Ruby에서하고 싶습니다. 나는 랙에 대해 알았지 만, 내가하고 싶은 아주 간단한 일을하기 위해 머리를 감쌀 수는 없다. , 내가 index.html./spec/fixtures/ 내부 폴더를 가지고 있고이 browser-sync 모듈을 사용하고 기본적으로루비로 기본 로컬 서버 설정

var 
    browsersync = require('browser-sync').create(), 
    gulp   = require('gulp') 
; 

gulp.task('server', function() { 
    browsersync.init({ 
    server: { 
     baseDir: './spec/fixtures/' 
    }, 
    port: 4000, 
    notify: false, 
    open: false 
    }); 
}); 

:

$ tree 
. 
├── lib 
│   └── page_reader.rb 
├── spec 
│   ├── fixtures 
│   │   └── index.html 
│   └── page_reader_spec.rb 
└── gulpfile.js 

내가 내 gulpfile.js에 지금 가지고있는 것은 :

내 폴더 구조 로컬 서버를 시작한 다음 내 테스트 폴더 내의 fixtures 폴더를 가리 킵니다. 내가 테스트를 실행할 때, 나는 어떻게해야 하나 개 터미널에서, 나는이 테스트를 실행하고있는에 페이지를로드하는 http://localhost:4000로 이동

$ gulp server 

한 다음 다른 터미널에서 수행

$ bundle exec rspec 

테스트를 실행하십시오.

내가 할 일은 gulp이지만 Ruby를 대신 사용하는 방법이 있습니까? browser-sync 모듈과 비슷한 방식으로 작동했지만 찾지 못했던 보석을 검색했습니다. 그러나 나는 그것이 꿀꺽 마심으로하는 것처럼 단순한 방법이 있어야한다고 생각합니다. gulp으로 계속 작업 할 수 있지만 완벽하게 작동하지만이 특정 방식과이 맥락에서 JavaScript와 Ruby를 혼합하는 것이 이상하게 느껴집니다.

+0

포함하려는 브라우저 동기화의 특정 기능은 무엇입니까? 질문 제목은 정적 http 서버를 설정하는 것을 제안합니다. 이는 사용자가하려는 것보다 간단합니다. Selenium의 루비 바인딩을 살펴보십시오. –

답변

1

간단한 대답은 내가 알고 :

cd spec/fixtures && ruby -run -e httpd -- -p 4000 . 

Gavin Kistner, Ben Oakes, 그리고 수천의 캐스트를 통해 Aaron Patterson (@tenderlove)의 호의 있다고. 나는 좋은 공동체를 사랑합니다. =]

+0

고마워요,이게 효과가 있고 정확히 제가 원했던 것입니다! 그리고 CI +1에서도 사용할 수 있습니다. –