Karma adalah pelari uji JavaScript yang dibangun dengan Node.js dan dimaksudkan untuk pengujian unit.
Protractor adalah untuk pengujian end-to-end dan menggunakan Selenium Web Driver untuk menggerakkan tes.
Keduanya dibuat oleh tim Angular. Anda dapat menggunakan pustaka pernyataan apa pun yang Anda inginkan.
Screencast: Karma Memulai
terkait :
pro :
- Menggunakan node.js, sangat kompatibel dengan Win / OS X / Linux
- Jalankan tes dari browser atau tanpa kepala dengan PhantomJS
- Jalankan pada banyak klien sekaligus
- Opsi untuk meluncurkan, menangkap, dan secara otomatis mematikan browser
- Opsi untuk menjalankan server / klien di komputer pengembangan atau secara terpisah
- Jalankan tes dari baris perintah (dapat diintegrasikan ke semut / pakar)
- Tulis tes xUnit atau gaya BDD
- Mendukung beberapa kerangka kerja uji JavaScript
- Tes otomatis dijalankan saat disimpan
- Proxy meminta lintas domain
- Kemungkinan untuk menyesuaikan:
- Perluas untuk membungkus kerangka uji lainnya (Jasmine, Mocha, QUnit built-in)
- Penegasan / bantahan Anda sendiri
- Reporter
- Peluncur Browser
- Plugin untuk WebStorm
- Didukung oleh Netbeans IDE
Cons :
Saya benar-benar tidak memenuhi syarat untuk mengomentari fitur, kekuatan, dan kelemahan mocha.js, tetapi hanya direkomendasikan kepada saya oleh seseorang yang saya percayai di komunitas JS.
Daftar fitur, sebagaimana dilaporkan oleh situs webnya:
- dukungan browser
- dukungan async sederhana, termasuk janji
- pelaporan cakupan pengujian
- dukungan string diff
- javascript # API untuk menjalankan tes
- status keluar yang tepat untuk dukungan CI dll
- deteksi otomatis dan nonaktifkan pewarnaan untuk non-ttys
- memetakan pengecualian yang tidak tertangkap ke kasus uji yang benar
- dukungan batas waktu uji async
- batas waktu uji khusus
- dukungan pemberitahuan growl
- melaporkan durasi uji
- menyoroti tes lambat
- dukungan pengamat file
- deteksi kebocoran variabel global
- opsional menjalankan tes yang cocok dengan regexp
- keluar otomatis untuk mencegah "menggantung" dengan loop aktif
- suite meta-menghasilkan dengan mudah & kasus uji
- dukungan file mocha.opts
- judul suite yang dapat diklik untuk memfilter pelaksanaan pengujian
- dukungan node debugger
- mendeteksi beberapa panggilan yang harus dilakukan ()
- gunakan perpustakaan pernyataan yang Anda inginkan
- pelaporan yang dapat diperluas, digabungkan dengan 9+ reporter
- DSL atau "antarmuka" uji yang dapat diperluas
- sebelum, sesudah, sebelum masing-masing, setelah setiap kait
- dukungan transpiler sewenang-wenang (skrip kopi dll)
- Bundel TextMate
Ini tidak ada lagi, alih-alih ke sequential.js sebagai gantinya
Yolpo adalah alat untuk memvisualisasikan pelaksanaan javascript. Pengembang Javascript API didorong untuk menulis kasus penggunaannya untuk menunjukkan dan memberi tahu API mereka. Kasus penggunaan semacam itu menjadi dasar dari uji regresi.
Pelari ujian futuristik dengan dukungan bawaan untuk ES2015. Meskipun JavaScript adalah single-threaded, IO di Node.js dapat terjadi secara paralel karena sifatnya yang async. AVA mengambil keuntungan dari ini dan menjalankan tes Anda secara bersamaan, yang sangat bermanfaat untuk tes berat IO. Selain itu, file uji dijalankan secara paralel sebagai proses terpisah, memberikan Anda kinerja yang lebih baik dan lingkungan yang terisolasi untuk setiap file uji.
- Minimal dan cepat
- Sintaks tes sederhana
- Menjalankan tes secara bersamaan
- Memaksakan menulis tes atom
- Tidak ada global tersirat
- Lingkungan terisolasi untuk setiap file uji
- Tulis tes Anda di ES2015
- Janji dukungan
- Dukungan fungsi generator
- Dukungan fungsi Async
- Dukungan yang dapat diobservasi
- Pernyataan yang ditingkatkan
- TAP o utput opsional
- Bersihkan jejak tumpukan
Pelari uji JavaScript yang dibuat dengan Node.js. Sangat modular dan fleksibel. Itu datang dengan perpustakaan pernyataan sendiri, tetapi Anda dapat menambahkan sendiri jika Anda suka. The pernyataan perpustakaan dipisahkan, sehingga Anda juga dapat menggunakannya dengan uji-pelari lainnya. Alih-alih menggunakan assert(!...)
atau expect(...).not...
, ia menggunakan refute(...)
yang merupakan twist yang bagus.
Toolkit pengujian JavaScript peramban. Itu melakukan pengujian browser dengan otomatisasi browser (pikirkan JsTestDriver), pengujian halaman HTML statis QUnit, pengujian di browser tanpa kepala (PhantomJS, jsdom, ...), dan banyak lagi. Lihatlah ikhtisar !
Toolkit pengujian Node.js. Anda mendapatkan pustaka uji kasus yang sama, pustaka pernyataan, dll. Ini juga bagus untuk browser hybrid dan kode Node.js. Tulis test case Anda dengan Buster.JS dan jalankan baik di Node.js dan di browser nyata.
Screencast: Buster.js Memulai (2:45)
pro :
- Menggunakan node.js, sangat kompatibel dengan Win / OS X / Linux
- Jalankan tes dari browser atau tanpa kepala dengan PhantomJS (segera)
- Jalankan pada banyak klien sekaligus
- Mendukung pengujian NodeJS
- Tidak perlu menjalankan server / klien di komputer pengembangan (tidak perlu untuk IE)
- Jalankan tes dari baris perintah (dapat diintegrasikan ke semut / pakar)
- Tulis tes xUnit atau gaya BDD
- Mendukung beberapa kerangka kerja uji JavaScript
- Tunda tes alih-alih berkomentar
- SinonJS bawaan
- Tes otomatis dijalankan saat disimpan
- Proxy meminta lintas domain
- Kemungkinan untuk menyesuaikan:
- Perluas untuk membungkus kerangka kerja pengujian lainnya (JsTestDriver bawaan)
- Penegasan / bantahan Anda sendiri
- Reporter (xUnit XML, titik tradisional, spesifikasi, ketuk, TeamCity, dan lainnya)
- Kustomisasi / ganti HTML yang digunakan untuk menjalankan tes browser
- Integrasi TextMate dan Emacs
Cons :
- Masih dalam versi beta jadi bisa buggy
- Tidak ada plugin untuk Eclipse / IntelliJ (belum)
- Tidak mengelompokkan hasil berdasarkan os / browser / versi seperti TestSwarm *. Namun, itu mencetak nama dan versi browser dalam hasil pengujian.
- Tidak ada riwayat hasil tes sebelumnya seperti TestSwarm *
- Tidak sepenuhnya bekerja di windows pada Mei 2014
* TestSwarm juga merupakan server Integrasi Berkelanjutan, sementara Anda memerlukan server CI terpisah untuk Buster.js. Namun, itu menghasilkan laporan XML xUnit, sehingga harus mudah diintegrasikan dengan Hudson , Bamboo atau server CI lainnya.
https://github.com/jquery/testswarm
TestSwarm secara resmi tidak lagi dalam pengembangan aktif sebagaimana dinyatakan pada halaman web GitHub mereka. Mereka merekomendasikan Karma, browser-runner, atau Intern.
Ini adalah kerangka kerja yang didorong oleh perilaku (sebagaimana dinyatakan dalam kutipan di bawah) yang mungkin menarik minat pengembang yang akrab dengan Ruby atau Ruby on Rails. Sintaks didasarkan pada RSpec yang digunakan untuk pengujian dalam proyek Rails.
Spesifikasi Jasmine dapat dijalankan dari halaman html (dalam mode qUnit) atau dari pelari ujian (seperti Karma).
Jasmine adalah kerangka kerja pengembangan perilaku untuk menguji kode JavaScript Anda. Itu tidak tergantung pada kerangka kerja JavaScript lainnya. Itu tidak memerlukan DOM.
Jika Anda memiliki pengalaman dengan kerangka kerja pengujian ini, silakan berkontribusi dengan info lebih lanjut :)
Beranda proyek: http://jasmine.github.io/
QUnit berfokus pada pengujian JavaScript di peramban sambil memberikan sebanyak mungkin kenyamanan bagi pengembang. Blurb dari situs:
QUnit adalah suite uji unit JavaScript yang kuat dan mudah digunakan. Ini digunakan oleh proyek jQuery, jQuery UI, dan jQuery Mobile dan mampu menguji setiap kode JavaScript umum
QUnit membagikan beberapa riwayat dengan TestSwarm (di atas):
QUnit pada awalnya dikembangkan oleh John Resig sebagai bagian dari jQuery. Pada tahun 2008 ia memiliki rumah sendiri, nama dan dokumentasi API, yang memungkinkan orang lain menggunakannya untuk pengujian unit mereka. Pada saat itu masih tergantung pada jQuery. Sebuah penulisan ulang pada tahun 2009 memperbaikinya, sekarang QUnit berjalan sepenuhnya mandiri. Metode pernyataan QUnit mengikuti spesifikasi CommonJS Unit Testing, yang sedikit banyak dipengaruhi oleh QUnit.
Beranda proyek: http://qunitjs.com/
Alat hebat lainnya adalah sinon.js oleh Christian Johansen, penulis Test-Driven JavaScript Development . Paling baik dijelaskan sendiri:
Mata-mata uji mandiri, bertopik dan mengejek untuk JavaScript. Tidak ada dependensi yang berfungsi dengan kerangka pengujian unit apa pun.
Situs Web Intern menyediakan perbandingan fitur langsung dengan kerangka kerja pengujian lain pada daftar ini. Ini menawarkan lebih banyak fitur di luar kotak daripada sistem pengujian berbasis JavaScript lainnya.
Kerangka pengujian baru namun sangat kuat. Ini memungkinkan pengujian berbasis snapshot juga ini meningkatkan kecepatan pengujian dan menciptakan dinamika baru dalam hal pengujian
Lihat salah satu pembicaraan mereka: https://www.youtube.com/watch?v=cAKYQpTC7MA
Lebih baik lagi: Memulai