2015-01-30 14 views

Trả lời

4

Có một vài điều bạn có thể thử.

How can I use command line arguments in Angularjs Protractor? giải thích cách chuyển biến "params", nếu bạn hoàn toàn chuyên nghiệp, bạn có thể tham khảo sau trong tệp cấu hình, với phần multiCapabilities (có thể sử dụng hàm trợ giúp hoặc câu lệnh if để bạn không phải truyền vào một đối tượng phức tạp từ dòng lệnh). Không dễ làm, nhưng có thể.

https://sourcegraph.com/github.com/teerapap/grunt-protractor-runner (xem phần Tùy chọn) là một tiện ích cho phép bạn chuyển những thứ này từ dòng lệnh mà không gặp bất kỳ sự cố nào. Đó là nguồn mở và có vẻ như sẽ dễ dàng sửa đổi nếu nó không hoàn toàn đáp ứng nhu cầu của bạn.

Tùy chọn đơn giản nhất, giả sử bạn chỉ cần một vài tùy chọn khác nhau, sẽ chỉ sử dụng hai tệp cấu hình khác nhau, "protractor.chrome.conf.js" và "protractor.firefox.conf.js" và chạy tùy chọn nào một trong những bạn cần vào lúc này.

21

Một ví dụ cụ thể về đề nghị đầu tiên của Isaac Lyman của:

CLI:

protractor ... --params.browsers="chrome,firefox" 

conf.js:

var capabilities = { 
    chrome: { 
    browserName: 'chrome' 
    }, 

    firefox: { 
    browserName: 'firefox' 
    } 
}; 

... 

getMultiCapabilities: function() { 
    var browsers = this.params.browsers.split(','); 

    // Using lodash to select the keys in `capabilities` corresponding 
    // to the browsers param. 
    return _(capabilities) 
    .pick(browsers) 
    .values() 
    .value(); 
}, 
+0

Tôi không thể tin rằng bạn đã không nhận được bất kỳ upvotes cho điều này, nó là một giải pháp tuyệt vời mà làm việc với các ràng buộc Protractor hiện tại. Một điều cần lưu ý là mọi người sẽ cần phải "npm install --save-dev lodash" từ dòng lệnh để thêm lodash vào node_modules của họ và "var _ = require ('lodash');" để nhập thư viện. –

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