Nodejs arka uç kodu Karma ile nasıl test edilir (testacular)


87

Arka uç birim testlerimi (Mocha ile yazılır) çalıştırmak için Karma'yı nasıl kurarım? Arka uç test komut dosyamı öğesine eklersem files = [], bunun requiretanımsız olduğunu belirten başarısız olur .


Bu CAN Projemin yapılabilir, almak görünüm: github.com/noamtcohen/Narma
noamtcohen

Yanıtlar:


83

Yapmıyorsun. Karma yalnızca tarayıcı tabanlı kodu test etmek içindir. Arka uçta mocha testleri ve ön uçta karma / mocha içeren bir projeniz varsa, testi şu şekilde ayarlamak için komut dosyaları altında package.json dosyanızı düzenlemeyi deneyin:mocha -R spec && karma run karma.con

Ardından, npm testtrue dönerse, teslim etmenin veya konuşlandırmanın güvenli olduğunu bilirsiniz.


Teşekkürler! Projemde kurmayı planladığım Grunt kullanarak bir çözüm buldum. Kendi cevabımı görün.
Sylvain

Temel olarak JS için tüm test koşucuları bir tarayıcıya güveniyor mu? Bu işe yaramaz.

4
Mocha ve Jasmine bir tarayıcıya güvenmiyor ve başsız bir tarayıcı çalıştırmak istediğinizde phantomjs kullanmayı düşünün.
Dan Kohn

2
Test için bir tarayıcıya güvenmenin kötü bir şey OLMADIĞINA dikkat edin. Farklı türlerde testler vardır ve ihtiyaçlarınıza bağlı olarak uçtan uca testler geçerlidir. Bazı durumlarda görsel gerilemeyi test etmek bile (facebook'un huxley'ine bakın) önemlidir.
Ciro Costa

15

Yapılamaz gibi görünüyor (teşekkürler @dankohn). İşte Grunt kullanarak çözümüm:

  • Karma: karma.conf.js dosyanızı güncelleyin

    • Ayarlamak autoWatch = false;
    • Ayarlamak singleRun = true;
    • set browsers = ['PhantomJS'];(satır içi sonuçlara sahip olmak için)
  • Homurtu:

    • npm install grunt-contrib-watch grunt-simple-mocha grunt-karma
    • iki grunt görevini yapılandırın (aşağıdaki grunt dosyasına bakın)

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 (isteğe bağlı): test edilecek spesifik dosyaları veya dosyaları değiştirdikten sonra çalışacak şekilde grunt-watch'u yapılandırın.

  • hepsini gruntkomut kullanarak çalıştırın .


3
Yani hala bir tarayıcıya ihtiyacınız var, sadece tarayıcı başsız bir tarayıcıdır. Ne kadar işe yaramaz, sunucu tarafı testi için kesinlikle karma kullanmamak.

5
Merhaba, bu arka uç için karma kullanmıyor, bu mocha kullanıyor, yani tarayıcı yok. Bu, bir dosyayı kaydeder kaydetmez tüm testlerinizi çalıştırmanın uygun bir yoludur.
Sylvain

Yaptığım şey için gerçekten Karma'ya ihtiyacım olmasa da, bu beni mocha testlerimi otomatik olarak çalıştırmak için homurdanma kurulumu yapmak için kolay bir yola götürdü, bu yüzden bunun için teşekkürler.
Michael Oryl

İlginç bir yaklaşım. Ancak, Sails globallerinin testlerinizde doğru şekilde tanınmasını nasıl sağlayabilirsiniz?
dmvianna
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.