2016-07-07 52 views
0

這可能是一個noobie問題,但我正在開發一個Ruby項目,現在我必須爲localhost提供一些文件來進行一些需要讀取加載的網頁的測試本地。我正在使用gulp,但我想用Ruby來做。我發現了關於Rack的事情,但我無法用頭來包裹它,以做我想做的非常簡單的事情。用ruby設置了一個基本的本地服務器

這是我的文件夾結構:

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

我現在在我的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模塊類似的gem,但找不到任何東西。不過,我認爲必須有一種簡單的方法,就像它用吞嚥一樣。我可以繼續使用gulp來完成它,因爲它完美地工作,但在這種情況下以這種特定方式混合使用JavaScript和Ruby會感到很奇怪。

+0

您希望包含哪些瀏覽器同步功能?你的問題標題表明你正試圖建立一個靜態的http服務器,這比你想要做的更簡單。看看Selenium的紅寶石綁定。 –

回答

1

簡單的答案我知道:

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

這就是Aaron Patterson@tenderlove)禮貌,通過Gavin KistnerBen Oakes,以及數以千計的鑄造。我喜歡一個好的社區。 =]

+0

謝謝,這工作,正是我想要的! 而且我也可以使用CI + 1 –

相關問題