2015-08-05 21 views
9

Tôi đang cố gắng chạy thử nghiệp thông qua một nhiệm vụ gulp. Tôi sử dụng https://github.com/karma-runner/gulp-karma và vì lý do nào đó, gulp không thể định vị tệp karma.conf.js của tôi. Tệp đó nằm trong cùng thư mục với tệp gulpfile. Gốc của dự án. Không có vấn đề gì con đường tôi đặt, tôi nhận được cùng một tập tin lỗi ./karma.conf.js không tồn tại. Tôi không thể tìm ra cách đi đúng hướng. Đây là mã cho nhiệm vụ gulp.Nhiệm vụ gulp không thể tìm thấy karma.conf.js

gulp.task('tdd', function (done) { 
    new Server({ 
    configFile: 'karma.conf.js' 
    }, done).start(); 
}); 

Trả lời

9

Đây là cách tôi thúc đẩy nghiệp bằng cách sử dụng Gulp (và cả hai tệp đều ở cùng một gốc).

var karma = require('karma'); 

gulp.task('karma', function (done) { 
    karma.server.start({ 
    configFile: __dirname + '/karma.conf.js' 
    }, done); 
}); 

CẬP NHẬT

Nếu bạn đang chạy Node.js sau đó

NODE Explnation for __dirname link

"Tên của thư mục đó kịch bản hiện đang thực hiện nằm trong."

Nếu bạn không chạy Node.js, thì có lẽ tất cả các bạn cần là

configFile: '/karma.conf.js' 

Nhưng nếu bạn đang chạy NODE sau đó sử dụng các ví dụ đầu tiên.

+0

__dirname được định nghĩa ở đâu? Nó dường như không được xác định nếu tôi đã làm theo cách này .. – Hcabnettek

+0

Tôi đã thêm bản cập nhật cho câu hỏi của bạn. – SoEzPz

+0

Tôi đang sử dụng gulp, một ứng dụng Node. Chỉ cần thêm __dirname, làm việc như một nhà vô địch. Nút phải làm cho nó có sẵn để nuốt chửng. Cám ơn rất nhiều! – Hcabnettek

3

Nếu một thư mục đích khác được gán cho __dirname thì thư mục đó không hoạt động. Hãy thử cách này:

var Server = require('karma').Server 
gulp.task('test', function (done) { 
    new Server({ 
    configFile: require('path').resolve('karma.conf.js'), 
    singleRun: true 
    }, done).start(); 
}); 
Các vấn đề liên quan