Sau rất nhiều nghiên cứu và thử và sai tôi đã chọn chồng sau cho Frontend BDD thử nghiệm:Thay thế cho CasperJS để sử dụng với Cucumber.js
- Cucumber.js
- CasperJS (thông qua SpookyJS)
- PhantomJS
tôi muốn tránh CasperJS chạy hàng đợi và sử dụng PhantomJS trực tiếp (thông qua phantom-proxy) với callbacks trong mỗi bước:
@World = (cb) ->
@phantom = require "phantom-proxy"
cb()
@Before (cb) ->
self = this
@phantom.create {}, (proxy) ->
self.proxy = proxy
self.page = proxy.page
cb()
@After (cb) ->
@proxy.end ->
cb()
@When /^I go to url "([^"]*)"$/, (url, cb) ->
@page.open url, ->
cb()
làm cho toàn bộ logic và BDD hơn.
Ngoài ra, SpookyJS không cung cấp API đầy đủ cho CasperJS.
API PhantomJS, tuy nhiên, khá thấp. Có bất kỳ công cụ nào khác cung cấp chức năng giống như CasperJS (nhấp, chờ các phần tử, v.v.) cho Node.js mà không sử dụng hàng đợi chạy không?
Ewww ... chạy PhantomJs từ bên trong Node là xấu xí. Tôi nói từ nhiều thất bại với điều đó. Giải pháp: PhantomJs + Casper có thể được chạy như một độc lập, và dễ dàng hơn nhiều để cấu hình và tùy chỉnh như vậy. Tôi không thể khuyên bạn nên chạy độc lập trên phiên bản Linux, tuy nhiên một thất bại khác về phía tôi. NHƯNG phantom.exe chạy từ cửa sổ dòng lệnh là một ơn trời. Nó chỉ hoạt động. Một máy chủ có thể được xây dựng trong ít hơn 20 dòng, là tốt. CasperJS + các bài kiểm tra của riêng bạn cũng dễ dàng xây dựng và tùy chỉnh, trực tiếp từ các ví dụ được cung cấp tại trang ví dụ CasperJs. Rat khuyen khich. – FredTheWebGuy
Theo như tôi nghiên cứu, nó hoạt động tốt cho các ứng dụng một trang, nhưng không hiệu quả đối với các trang web, nơi mà người dùng cần điều hướng từ trang này sang trang khác. Cuối cùng chúng tôi đã đi thử nghiệm bên trong django với rau diếp và ghostdriver. hoạt động như sự quyến rũ thực sự và rất nhanh. –
Bạn nên sử dụng https://github.com/AllegiantAir/cucumber-defaults –