2016-07-07 5 views
0

これはおそらくnoobieに関する質問ですが、私はRubyプロジェクトに取り組んでおり、ロードされたWebページを読む必要があるいくつかのテストでlocalhostからいくつかのファイルを提供しなければなりませんローカルに。私はgulpを使っていますが、私はRubyでやりたいと思います。私はRackについて知っていましたが、私がやりたいと思う非常に簡単なことをするために私の頭を包み込むことはできません。Rubyで基本的なローカルサーバーを設定する

これは私のフォルダ構造である:私は私のgulpfile.jsに今持っている何

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

は次のとおりです。

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 
    }); 
}); 

基本的に、私はindex.html./spec/fixtures/内部のフォルダを持っていると私はbrowser-syncモジュールを使用していますローカルサーバーを起動して、テストフォルダ内のfixturesフォルダを指します。私がテストを実行したい場合は、私がしなければならない。

$ gulp server 

を一つの端末では、その後、私はテストを実行しているそれに対してページをロードするためにhttp://localhost:4000に移動し、別の端末で実行します。

$ bundle exec rspec 

テストを実行する。

私はgulpで行っていることを実行する方法はありますか?代わりにRubyを使用していますか?私はbrowser-syncモジュールと同様の方法で動作したが、見つからなかった宝石を探した。しかし、私はそれがギャルとそれをしているように簡単な方法がなければならないと思う。私はgulpでそれを続けることができますが、それは完璧に動作しますが、JavaScriptとRubyをこの特定のやり方で、この文脈で混在させるのは変です。

+0

ブラウザ同期の具体的な機能にはどのようなものがありますか?あなたの質問タイトルは、静的なhttpサーバを設定しようとしていることを示唆しています。静的なhttpサーバは、実行しようとしているものより簡単です。 Seleniumのルビバインディングを見てみましょう。 –

答えて

1

私が知っている最も簡単な答え:

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

Gavin Kistner経由Aaron Patterson@tenderlove)の礼儀、Ben Oakes、そして何千ものキャストです。私は良いコミュニティが大好きです。 =]

+0

ありがとう、これはうまくいきました! また、私はCI +1で使用することもできます –

関連する問題