2010-06-22 40 views
41

Lý do tại sao tôi muốn chạy chúng riêng lẻ, là bởi vì tôi cần phải thiết lập riêng chúng trong tệp Rake của tôi, vì, Không gian Java của tôi tràn đầy khi tôi chạy tất cả cùng nhauRuby on Rails: Dưa chuột: làm thế nào để tôi Rake một tính năng duy nhất?

+0

Java Heap Space? Làm thế nào để Java hình thành điều này nếu bạn đang sử dụng một Rake/Rails/Dưa chuột stack? –

+0

chạy trên jruby, tôi đoán là – fakeleft

+0

không trực tiếp. Tôi đang sử dụng một số thư viện cùng với dưa chuột sử dụng jruby mặc dù. Tôi nghĩ CapyBara là một. = \ – NullVoxPopuli

Trả lời

40

Để trả lời câu hỏi Rake trực tiếp, bạn có thể sử dụng:

rake FEATURE=features/adding_products.feature cucumber 

nhưng trang Using Rake wiki khuyên không nên sử dụng cào cho bất cứ điều gì nhưng trên một máy chủ CI vì nó chậm hơn để bắt đầu. Chỉ cần sử dụng dòng lệnh dưa chuột thay vào đó, ví dụ:

cucumber features/adding_products.feature 

hoặc, nếu bạn phải:

bundle exec cucumber features/adding_products.feature 
+4

cho phiên bản mới, bạn cũng có thể thực hiện điều này - các tính năng của gói exec exec/adding_products.feature –

0

Nếu bạn sử dụng cuke4duke bạn có thể chạy riêng biệt với kiến ​​hoặc maven.

manual tuyên bố rằng bạn có thể sử dụng các tùy chọn giống như dưa chuột. Vì vậy, tôi hy vọng bạn có thể pas tên tệp của đối tượng địa lý mà bạn muốn chạy trên dòng lệnh.

0

Bạn có thể sử dụng script/cucumber để thực hiện các tệp riêng lẻ.

Giả sử bạn đang ở trong thư mục gốc của dự án của bạn và bạn có một thư mục các tính năng:

./script/cucumber features/adding_products.feature 

Edit: Sau khi đọc lại câu hỏi của bạn, Bạn đang tìm kiếm để làm các tính năng cá nhân, hoặc các kịch bản?

+0

Đối với tôi, tính năng này hoạt động 'dưa chuột -r tính năng/adding_products.feature' – sivabudh

65

Cách đúng là để chạy nó bằng cách sử dụng cucumber thực thi nếu bạn đang sử dụng Rails 2, hoặc bundle exec cucumber nếu bạn đang sử dụng Rails 3 (và do đó Bundler).

Để chạy một tính năng cụ thể:

[command] features/signing_in.feature 

Để chạy một kịch bản cụ thể từ các tính năng:

[command] features/signing_in.feature:6 

Số dòng có thể được bất kỳ dòng bên trong tính năng đó, nhưng thường là dòng đầu tiên .

Nếu bạn chạy rake cucumber:ok và một số kịch bản thất bại, ở dưới cùng của đầu ra bạn sẽ thấy một cái gì đó như thế này:

cucumber features/sigining_in.feature:6 # Signing in via form 

Bạn có thể triple-click dòng này và dán nó vào thiết bị đầu cuối của bạn chỉ chạy mà kịch bản.

+13

Để chạy một kịch bản, bạn cũng có thể nhập : 'dưa chuột - tên" Đăng nhập qua biểu mẫu "' – Bastien

+0

Cảm ơn bạn Ryan và Bastien. Đây sẽ là câu trả lời được chấp nhận. –

36

Cào không hoạt động đối với tôi. Chỉ cần thay thế các cào với bó exec, và nó làm việc. dưới đây là một mẫu.

tính năng gói dưa chuột/người dùng/đăng ký.Tính năng --require tính năng

+0

Làm việc cho tôi. Cảm ơn –

+1

Đã làm việc cho tôi. Nếu tôi bỏ qua các tính năng --require dưa chuột không thể xác định các định nghĩa bước. –

+0

đúng, có cùng sự cố. thay thế rõ ràng là để mã cứng rằng '--require features' thay thế dòng này trong ** config/cucumber.yml **' std_opts = "--format # {ENV ['CUCUMBER_FORMAT'] || 'pretty'} - --tags ~ @ wip "' với 'std_opts =" --format # {ENV ['CUCUMBER_FORMAT'] || 'đẹp'} --strict --tags ~ @ wip --yêu cầu tính năng/"' xem [câu hỏi này] (http: // stackoverflow.com/questions/6264030/rake-run-all-my-dưa chuột-test-fine-nhưng-dưa chuột-không-có-bước-bước) –

15

Tôi không chắc chắn dưa chuột của tag feature đã có sẵn khi là câu hỏi, nhưng tôi thích thiết @active thẻ

@active 
    Feature .. 

hoặc

@active 
    Scenario .. 

cucumber --tags @active 
11

Tôi thích lệnh ngắn $ cucumber -n.

Nếu:

Feature: Manage Contents 
    In order to manage instances from custom content types 
    … 

Sau đó:

$ cucumber -n "Manage Contents" 
+0

Chỉ có một người làm việc cho tôi với zeus - cảm ơn! – Houen

+0

Một người bạn thân, bạn là thiên tài –

0

Các thông số thường được yêu cầu khi bạn có nhiều dự án dưa chuột trong một doanh nghiệp quy mô lớn là 1), nơi để chạy thử nghiệm 2) Những môi trường để chạy với 3) Trình duyệt nào 4) Thẻ nào

Dưới đây là một mô hình rất linh hoạt và có thể được sử dụng theo nhiều cách dựa trên nhu cầu của bạn. mô hình này có thể được sử dụng để chạy cục bộ, chống lại một mạng lưới selen, chống saucelabs và trong một môi trường tích hợp liên tục

http://seleniumframework.wordpress.com/2014/05/18/pattern-for-running-multiple-cucumber-projects-on-ci-server/

1

Để chạy một tập tin tính năng duy nhất.

cucumber /project folder/features/featurefile.feature 

Để chạy kịch bản cụ thể:

cucumber /project folder/features/featurefile.feature:10 

nơi 10 là dòng kịch bản.

Nếu bạn sử dụng bundler,

bundle exec cucumber /project folder/features/featurefile.feature

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