Cách kiểm tra mã phụ trợ nodejs với Karma (testacular)


87

Làm cách nào để thiết lập Karma để chạy các bài kiểm tra đơn vị phụ trợ (được viết bằng Mocha)? Nếu tôi thêm tập lệnh kiểm tra phụ trợ của mình vào files = [], nó không thể nói rằng đó requirelà không xác định.


Đây CAN được thực hiện, mất nhìn vào dự án của tôi: github.com/noamtcohen/Narma
noamtcohen

Câu trả lời:


83

Bạn không. Karma chỉ để thử nghiệm mã dựa trên trình duyệt. Nếu bạn có một dự án với các thử nghiệm mocha trên phần phụ trợ và karma / mocha trên giao diện người dùng, hãy thử chỉnh sửa package.json của bạn trong các tập lệnh để đặt thử nghiệm thành:mocha -R spec && karma run karma.con

Sau đó, nếu npm testtrả về true, bạn sẽ biết việc cam kết hoặc triển khai là an toàn.


Cảm ơn! Tôi đã tìm thấy một giải pháp bằng cách sử dụng Grunt mà tôi đã lên kế hoạch thiết lập trong dự án của mình. Xem câu trả lời của riêng tôi.
Sylvain

Về cơ bản tất cả những người chạy thử nghiệm cho JS đều dựa vào trình duyệt? Thật vô ích.

4
Mocha và Jasmine không dựa vào trình duyệt và khi bạn muốn chạy trình duyệt không có đầu, hãy cân nhắc sử dụng phantomjs.
Dan Kohn

2
Lưu ý rằng việc dựa vào trình duyệt để kiểm tra KHÔNG phải là điều gì xấu. Có nhiều loại thử nghiệm khác nhau và thử nghiệm từ đầu đến cuối là hợp lệ, tùy thuộc vào nhu cầu của bạn. Ngay cả việc kiểm tra hồi quy trực quan (xem facebook's huxley) cũng quan trọng trong một số trường hợp.
Ciro Costa

15

Có vẻ như nó không thể được thực hiện (cảm ơn @dankohn). Đây là giải pháp của tôi bằng cách sử dụng Grunt:

  • Karma: cập nhật tệp karma.conf.js của bạn

    • bộ autoWatch = false;
    • bộ singleRun = true;
    • đặt browsers = ['PhantomJS'];(để có kết quả nội dòng)
  • Tiếng càu nhàu:

    • npm install grunt-contrib-watch grunt-simple-mocha grunt-karma
    • định cấu hình hai tác vụ grunt (xem tệp grunt bên dưới)

Gruntfile.js:

module.exports = function (grunt) {
  grunt.loadNpmTasks('grunt-simple-mocha');
  grunt.loadNpmTasks('grunt-karma');

  grunt.initConfig({
    simplemocha: {
      backend: {
        src: 'test/server-tests.js'
      }
    },
    karma: {
      unit: {
        configFile: 'karma.conf.js'
      }
    }
  });

  // Default task.
  grunt.registerTask('default', ['simplemocha', 'karma']);
};
  • Grunt (tùy chọn): định cấu hình grunt-watch để chạy sau khi thay đổi tệp đặc tả hoặc tệp cần kiểm tra.

  • chạy tất cả bằng gruntlệnh.


3
Vì vậy, bạn vẫn yêu cầu một trình duyệt, chỉ là trình duyệt đó là một trình duyệt không có đầu. Vô dụng làm sao, chắc chắn không phải dùng karma để thử nghiệm phía máy chủ.

5
Xin chào, đây không phải là sử dụng karma cho phụ trợ, đây là sử dụng mocha, vì vậy không có trình duyệt. Đây chỉ là một cách thuận tiện để chạy tất cả các bài kiểm tra của bạn ngay sau khi bạn lưu tệp.
Sylvain

Mặc dù tôi không thực sự cần Karma cho những gì tôi đang làm, nhưng điều này đã dẫn tôi đến một con đường dễ dàng để có được thiết lập grunt để chạy các bài kiểm tra mocha của tôi tự động, vì vậy cảm ơn vì điều đó.
Michael Oryl

Cách tiếp cận thú vị. Nhưng làm thế nào để bạn đảm bảo rằng các hình cầu Sails được nhận dạng đúng trong các thử nghiệm của bạn?
dmvianna
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.