2013-03-07 39 views
9

Tôi đã lướt internet tìm kiếm một mô tả về điều tôi đang cố gắng làm nhưng vô ích. Tôi muốn nhận được kiểm tra đơn vị tại chỗ cho một frontent web tôi đang xây dựng chạy trực tiếp trên mã sản xuất bằng cách tải nó với PhantomJS từ localhost. Tôi muốn chạy một nhiệm vụ Grunt mà đi qua thông số kỹ thuật của tôi sau khi tải các trang web thực sự và tương tác với các dom để kiểm tra tất cả mọi thứ ra ngoài. Tôi ở đây, nhưng tôi thực sự không thể tải trang.Quy trình làm việc tốt nhất để chạy thử nghiệm hoa nhài trên mã sản xuất với grunt là gì?

Nếu tôi thêm một mục máy chủ để các tùy chọn hoa nhài trong gruntfile tôi như vậy:

options: { 
     specs: 'spec/*Spec.js', 
     helpers: 'spec/*Helper.js', 
     vendor: ['app/assets/javascripts/src/libs/jquery-1.9.1.min.js', 'app/assets/javascripts/src/libs/underscore.js'], 
     template: require('grunt-template-jasmine-requirejs'), 
     host: "http://localhost:3000" 
     } 

tôi nhận được một lỗi thời gian chờ mỗi lần. Không ai thực sự giải quyết vấn đề này trong bối cảnh Grunt, vì vậy tôi không chắc chắn câu chuyện là gì, và tôi không có thử nghiệm không đồng bộ nào đang chạy. Nếu tôi rời khỏi máy chủ, nó chạy các thử nghiệm thành công, nhưng chỉ trên các tệp javascript thô của tôi thông qua hệ thống tệp cục bộ, không phải trên mạng cục bộ. Làm thế nào để cấu hình các mẫu của tôi để cho phép các bài kiểm tra Jasmine chạy trên một máy chủ khác?

UPDATE:

Trên thực tế, có vẻ như Grunt không thực sự thăm dò ý kiến ​​chống lại các máy chủ địa phương, nó chỉ bị treo và thời gian ra.

Trả lời

6

bạn cần để bắt đầu một máy chủ địa phương sử dụng grunt-contrib-connect

chỉ định trong cấu hình của bạn:

grunt.initConfig({ 
    connect: { 
    server: { 
     options: { 
     port: 3000 
     } 
    } 
    } 
});  

thêm vào một nhiệm vụ bí danh:

grunt.registerTask("default", ["connect", "your-jasmine-task"]); 

và chạy nó:

$ grunt default 
Các vấn đề liên quan