2015-04-30 13 views
8

Tôi đang cố sử dụng đầu nối bộ nhớ làm nguồn dữ liệu khi thực hiện kiểm tra tích hợp. Nhưng dường như nó luôn kết nối với nguồn dữ liệu mongodb.Kiểm tra vòng lặp với bộ nhớ làm nguồn dữ liệu

Một hack lớn mà tôi đã thực hiện là thay đổi nguồn dữ liệu cho từng mô hình thành bộ nhớ. Nhưng phải có cách tốt hơn để làm điều này. Tôi đang chạy thử nghiệm của tôi từ một nhiệm vụ gulp. Roflmao model-memory-hack của tôi:

var models = require('../server/model-config.json'); 
    for (var key in models) { 
    var model = loopback.getModel(key); 
    loopback.configureModel(model, {dataSource: memory}); 
    } 
} 

Có cách nào để thay đổi nguồn dữ liệu cho ứng dụng không? Hay tôi phải thay đổi nguồn dữ liệu cho từng mô hình riêng lẻ ..?

Một cách để làm điều này là thay đổi biến môi trường trong quá trình thử nghiệm, nhưng cho đến nay, không may mắn .. Tôi đang làm điều này với tiền xử lý gulp-preprocess.

Hy vọng rằng bằng cách thay đổi biến môi trường, nó sẽ sử dụng datasources.integrationtesting.js, trong đó tôi có bộ nhớ làm nguồn dữ liệu.

My ngụm-nhiệm vụ:

return gulp.src('integration-tests/*.js') 
.pipe($.preprocess({context: {NODE_ENV: 'integrationtesting'}})) 
.pipe($.mocha()) 

Tôi đang sử dụng:

  • loopback-thử nghiệm
  • ngụm-mocha

Đánh giá cao bất kỳ ý kiến ​​..:)

+0

Điều gì sẽ sửa lỗi này là để có thể thay đổi NODE_ENV trong khi kiểm tra ... –

Trả lời

7

Tôi nghĩ những gì bạn ' đang tìm kiếm là environment-specific configuration files. Về cơ bản, bạn chỉ cần tạo nguồn dữ liệu có cùng tên, nhưng triển khai khác nhau trong các môi trường khác nhau. Tệp datasources.json của bạn sẽ là mặc định, nhưng datasources.development.json sẽ được sử dụng nếu NODE_ENV được đặt thành development.

Từ đó trang liên kết, bạn có thể có điều này trong datasources.json:

{ 
    db: { 
    connector: 'mongodb', 
    database: 'myapp', 
    user: 'myapp', 
    password: 'secret' 
    } 
} 

Và điều này trong datasources.development.json:

{ 
    db: { 
    connector: 'memory' 
    } 
} 
+2

Như đã giải thích, tôi sẽ thực hiện các bài kiểm tra trong một nhiệm vụ gulp. Tôi cố gắng thay đổi môi trường để "kiểm tra" để cho phép cấu hình theo môi trường cụ thể, nhưng nó dường như không sử dụng cấu hình thử nghiệm .. –

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