2015-05-20 21 views
6

Chúng tôi đang sử dụng thước đo góc để thử nghiệm ứng dụng góc kết thúc trước mà chúng tôi đang xây dựng.thông số môi trường cài đặt cho các thử nghiệm đo lường e2e

Hiện tại chúng tôi đang sử dụng browser.get() để xác định môi trường chúng tôi muốn kiểm tra lại (localhost: 9000, dàn dựng, UAT) tuy nhiên tôi muốn tham số hóa để khi chạy thử nghiệm bằng cách sử dụng grunt test:e2e chúng tôi có thể chỉ định tham số để thay đổi browser.get() đến một môi trường được chỉ định.

Điều gì đó giống như có thể gọi grunt test:e2e NODE_ENV=uat để kiểm tra với môi trường được chỉ định.

Bất kỳ ai có bất kỳ thông tin chi tiết nào về cách thực hiện việc này?

Trả lời

7

Bạn có thể chuyển bất kỳ số lượng đối số nào cho thước đo góc Bạn cần chuyển các tham số trong tác vụ thước đo góc trong tệp grunt của bạn. Đây là đoạn mã nhỏ

config: grunt.file.readJSON('config-param.json'), 
protractor: { 
     options: { 
      configFile: "config/e2e.conf.js", // Default config file 
      keepAlive: true, // If false, the grunt process stops when the test fails. 
      noColor: false, // If true, protractor will not use colors in its output. 
      debug: '<%= config.debugger %>', 
      args: { 
       params: '<%= config %>' 
      } 
     }, 
     run: {} 
    }, 

và bạn có thể truy cập thông số trong thông số kỹ thuật của mình. browser.params.fieldName

+0

Tôi thấy rằng tôi có thể đặt' baseUrl: 'vào trường param của tệp grunt, tuy nhiên tôi có thể có một nhân vật nhiệm vụ chỉ định' baseUrl' sử dụng? Ngay cả khi có thể gọi 'browser.params.baseUrl' trong thông số kỹ thuật của tôi, điều này sẽ không giúp ích gì khi có thể chạy thử nghiệm cụ thể cho môi trường của tôi. – user249656

4

Cách phổ biến để tiếp cận vấn đề là sử dụng baseUrl command-line argument:

protractor --baseUrl='http://localhost:9000' protractor.conf.js 

Hoặc, bạn có thể thiết lập các webdriver.base.url environment variable:

webdriver.base.url=http://localhost:9000 

Bạn cũng có thể sử dụng một công việc quản lý (ví dụ gruntgrunt-protractor-runner) và định cấu hình các tác vụ khác nhau để chạy thử nghiệm trong một cài đặt môi trường khác nhau khác nhau baseUrl s.

+0

Cảm ơn vì điều đó! Tôi đã tìm ra rằng tôi có thể thiết lập trình quản lý tác vụ grunt để có một cái gì đó như: 'else if (target === 'e2euat') { return grunt.task.run ([ 'clean: server' , 'env: tất cả', 'env: UAT', 'đồng thời: test', 'phun', 'wiredep', 'autoprefixer', 'Express: dev', 'thước đo' ]); } ' Tuy nhiên vấn đề tôi không cố gắng giải quyết là cách chuyển công việc này tới browser.get() trong tệp spec của tôi khi điều hướng" home " – user249656

+0

@ user249656 bất cứ khi nào bạn đang sử dụng' browser.get() ', sử dụng tương đối so với các url cơ sở, ví dụ 'browser.get (" index.html ")'. – alecxe

+0

Cảm ơn! Vì vậy, tôi nghĩ rằng grunt-thước đo-runner là con đường tôi nên dùng. May mắn thay, tôi nhận thấy rằng 'Gruntfile.js' của chúng ta đã tham chiếu đến thước đo góc, trong đó chúng ta chỉ định tệp' protractor.config.js'. Nếu tôi chỉ định 'baseUrl:" http: // localhost: 9000 "' trong 'protractor.config.js' thì chúng ta sẽ luôn điều hướng đến localhost hơn là một môi trường được tham số hóa. Có cách nào để trình quản lý tác vụ cập nhật 'baseUrl' khác không? Tôi không thấy bất cứ điều gì trong các tài liệu mà tôi đã đọc qua: \ Có thể là một cách để nói 'baseUATUrl:'? – user249656

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