2013-03-08 20 views
12

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?

+0

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

+2

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. –

+0

Bạn nên sử dụng https://github.com/AllegiantAir/cucumber-defaults –

Trả lời

4

Mocha-PhantomJS có thể chỉ là những gì bạn đang tìm kiếm.

Hoặc, WebdriverJS có hỗ trợ kiểm tra dưa chuột.

Nếu bạn muốn cấp thấp hơn, bạn có thể thử giao tiếp trực tiếp với số selenium-webdriver. Đây là demo trên github.

Chúc may mắn!

1

Tôi muốn giới thiệu Mochacucumber syntax add-on (mocha-cackes) và/hoặc chai và các plugin của nó chai-jquerychai-timers.

Ngoài ra Karma đi kèm với hỗ trợ cú pháp dưa chuột thông qua plugin karma-cucumber.

Cả Karma và Mocha đều cho phép bạn chạy thử nghiệm của mình chống lại các thiết bị thực bằng trình khởi chạy cho saucelabs hoặc browserstack chẳng hạn.

Hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan