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
Lihatlah kerangka kerja pengujian unit Dojo Object Harness (DOH) yang merupakan kerangka kerja independen yang cukup banyak untuk pengujian unit JavaScript dan tidak memiliki dependensi Dojo. Ada deskripsi yang sangat baik tentang hal itu di aplikasi pengujian Web 2.0 menggunakan Dojo Objective Harness .
Jika Anda ingin mengotomatiskan pengujian UI (titik sakit banyak pengembang) - lihat doh.robot ( perbarui sementara. Pembaruan: tautan lain http://dojotoolkit.org/reference-guide/util/dohrobot.html ) dan dijit .robotx (sementara down) . Yang terakhir ini dirancang untuk pengujian penerimaan. Memperbarui:
Artikel yang direferensikan menjelaskan cara menggunakannya, cara meniru pengguna yang berinteraksi dengan UI Anda menggunakan mouse dan / atau keyboard, dan cara merekam sesi pengujian, sehingga Anda dapat "memainkannya" secara otomatis.
sumber
Chutzpah - Pelari Uji JavaScript
Saya membuat proyek open source bernama Chutzpah yang merupakan pelari uji untuk pengujian unit JavaScript. Chutzpah memungkinkan Anda untuk menjalankan tes unit JavaScript dari baris perintah dan dari dalam Visual Studio. Ini juga mendukung berjalan di server integrasi berkelanjutan TeamCity.
sumber
Bagian JavaScript dari entri Wikipedia, Daftar Kerangka Pengujian Unit , menyediakan daftar pilihan yang tersedia. Ini menunjukkan apakah mereka bekerja di sisi klien, sisi server, atau keduanya.
sumber
BusterJS
Ada juga BusterJS dari Christian Johansen, penulis Test Driven Javascript Development dan kerangka kerja Sinon. Dari situs:
sumber
google-js-test:
Kerangka pengujian JavaScript dirilis oleh Google: https://github.com/google/gjstest
Saat ini tidak ada binari untuk Windows
sumber
Kami sekarang menggunakan Qunit dengan Pavlov dan JSTestDriver secara bersamaan. Pendekatan ini bekerja dengan baik untuk kita.
QUnit
Pavlov , sumber
jsTestDriver , sumber
sumber
Anda memiliki "berjalan di browser yang sebenarnya" sebagai pro, tetapi dalam pengalaman saya itu adalah penipu karena lambat. Tetapi yang membuatnya berharga adalah kurangnya emulasi JS yang memadai dari alternatif non-browser. Bisa jadi jika JS Anda cukup kompleks sehingga hanya tes browser yang memadai, tetapi ada beberapa opsi untuk dipertimbangkan:
HtmlUnit : "Ini memiliki dukungan JavaScript yang cukup bagus (yang terus membaik) dan mampu bekerja bahkan dengan pustaka AJAX yang cukup kompleks, mensimulasikan Firefox atau Internet Explorer tergantung pada konfigurasi yang ingin Anda gunakan." Jika emulasi ini cukup baik untuk Anda gunakan maka itu akan jauh lebih cepat daripada mengendarai browser.
Tapi mungkin HtmlUnit memiliki dukungan JS yang cukup baik tetapi Anda tidak suka Java? Maka mungkin:
Celerity : Watir API berjalan di JRuby yang didukung oleh HtmlUnit.
atau serupa
Schnell : pembungkus JRuby lain dari HtmlUnit.
Tentu saja jika HtmlUnit tidak cukup baik dan Anda harus menggerakkan peramban maka Anda dapat mempertimbangkan Watir untuk mengarahkan JS Anda .
sumber
YUI juga memiliki kerangka pengujian . Video ini dari Yahoo! Teater adalah pengantar yang bagus, meskipun ada banyak dasar tentang TDD di depan.
Kerangka kerja ini generik dan dapat dijalankan terhadap perpustakaan JavaScript atau JS.
sumber
Anda mungkin juga tertarik dengan kerangka kerja pengujian unit yang merupakan bagian dari qooxdoo , kerangka kerja RIA open source mirip dengan Dojo, ExtJS, dll. Tetapi dengan rantai alat yang cukup komprehensif.
Coba versi testrunner online . Petunjuk: tekan panah abu-abu di kiri atas (harus dibuat lebih jelas). Ini adalah tombol "play" yang menjalankan tes yang dipilih.
Untuk mengetahui lebih lanjut tentang kelas JS yang memungkinkan Anda menentukan tes unit Anda, lihat penampil API online .
Untuk pengujian UI otomatis (berdasarkan Selenium RC), periksa proyek Simulator .
sumber
Anda harus melihat di env.js . Lihat blog saya untuk contoh cara menulis unit test dengan env.js.
sumber
Kami menambahkan integrasi JUnit ke Java kami ke generator kode Javascript ST-JS ( http://st-js.org ). Kerangka kerja menghasilkan Javascript yang sesuai untuk kode yang diuji dan unit menguji dan mengirimkan kode ke browser yang berbeda.
Tidak perlu untuk server terpisah karena unit test runner membuka port http yang diperlukan (dan menutupnya setelah tes selesai). Kerangka kerja memanipulasi stacktrace Java sehingga pernyataan yang gagal ditampilkan dengan benar oleh plugin JUnit Eclipse. Berikut adalah contoh sederhana dengan jQuery dan Mockjax:
sumber
MochiKit memiliki kerangka kerja pengujian yang disebut SimpleTest yang tampaknya sudah populer. Berikut ini posting blog dari penulis aslinya .
sumber