2014-04-17 15 views
44

Tôi đang sử dụng thước đo góc để thực hiện một số kiểm tra kết thúc để kết thúc và tôi muốn chuyển thông tin xác thực đăng nhập thông qua dòng lệnh thay vì lưu trữ chúng trong tệp spec. Tôi tìm thấy một bài đăng mà một người nào đó đã sử dụng process.argv.forEach, nhưng làm cách nào tôi có thể lưu trữ các giá trị đó và sử dụng chúng trong một tệp thông số khác? Tôi có một tệp có tên là login-spec.js nơi tôi muốn sử dụng các đối số dòng lệnh.Làm cách nào để sử dụng các đối số dòng lệnh trong Angularjs Protractor?

Cảm ơn!

Trả lời

83

Trong reference config phần này có thể là thú vị:

// The params object will be passed directly to the protractor instance, 
    // and can be accessed from your test. It is an arbitrary object and can 
    // contain anything you may need in your test. 
    // This can be changed via the command line as: 
    // --params.login.user 'Joe' 
    params: { 
    login: { 
     user: 'Jane', 
     password: '1234' 
    } 
    }, 

Và bạn có thể truy cập vào đối tượng params như thế này trong mã của bạn: browser.params.login.user

Vì vậy, trong trường hợp của bạn nếu bạn gọi thước đo như thế này:

protractor ... --params.login.user=abc --params.login.password=123 

Bạn có thể truy cập các biến này trong mã của bạn như sau:

browser.params.login.userbrowser.params.login.password

+3

nếu bạn thử và chuyển mảng trên dòng lệnh "protractor --params.myArray = [1,2,3]", nó sẽ được xem như một chuỗi mà bạn sẽ cần đến JSON. phân tích cú pháp (browser.params.myArray); – rob

+2

Một lưu ý khác, dấu = trên dòng lệnh là tùy chọn. Vì vậy, "thước đo góc - params.myNum = 50 ..." tương đương với "thước đo góc - params.myNum 50 ..." Ban đầu tôi đã nghĩ rằng nhận xét trong câu trả lời là sai. – rob

+0

Làm việc như một sự quyến rũ! Mặc dù, vì nó lấy các đối số như là chuỗi, nó làm cho một loại lộn xộn đối phó với các boolean. Gợi ý của tôi: nếu bạn có mặc định trong mã của bạn, đặt chúng thành false và ghi đè chúng từ CLI nếu cần thiết (ví dụ: thước đo ... --params.myFlag = true), vì cả "true" và "false" đều thực sự bị lỗi . Nếu bạn phải vượt qua sai thông qua CLI, bạn phải sử dụng các chuỗi chỉ có falsy có: thước đo ... --- params.myFlag = (để trống ở cuối, có nó hoạt động, sai như nó trông !) – schonarth

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