Saya tidak melihat bagaimana melakukan pengembangan yang didorong oleh uji coba dalam meteor.
Saya tidak melihatnya disebutkan di mana pun dalam dokumentasi atau FAQ. Saya tidak melihat contoh atau semacamnya.
Saya melihat bahwa beberapa paket menggunakan Tinytest.
Saya butuh respon dari developer, roadmap apa tentang ini. Sesuatu di sepanjang baris:
- mungkin, tidak ada dokumentasi, cari tahu sendiri
- meteor tidak dibuat sedemikian rupa sehingga Anda dapat membuat aplikasi yang dapat diuji
- ini adalah fitur yang direncanakan
- dll
Jawaban:
Pembaruan 3 : Pada Meteor 1.3, meteor menyertakan panduan pengujian dengan petunjuk langkah demi langkah untuk unit, integrasi, penerimaan, dan pengujian beban.
Pembaruan 2 : Mulai 9 November 2015, Velocity tidak lagi dipertahankan . Xolv.io memfokuskan upaya mereka pada Simpanse , dan Meteor Development Group harus memilih kerangka pengujian resmi .
Pembaruan : Velocity adalah solusi pengujian resmi Meteor mulai 0.8.1.
Tidak banyak yang telah ditulis tentang pengujian otomatis dengan Meteor saat ini. Saya berharap komunitas Meteor mengembangkan praktik terbaik pengujian sebelum menetapkan apa pun dalam dokumentasi resmi. Bagaimanapun, Meteor mencapai 0,5 minggu ini, dan banyak hal masih berubah dengan cepat.
Kabar baiknya: Anda dapat menggunakan alat pengujian Node.js dengan Meteor .
Untuk proyek Meteor saya, saya menjalankan pengujian unit saya dengan Mocha menggunakan Chai untuk pernyataan. Jika Anda tidak membutuhkan set fitur lengkap Chai, saya sarankan menggunakan should.js sebagai gantinya. Saat ini saya hanya memiliki pengujian unit, meskipun Anda juga dapat menulis pengujian integrasi dengan Mocha.
Pastikan untuk menempatkan tes Anda di folder "tes" sehingga Meteor tidak mencoba menjalankan tes Anda.
Mocha mendukung CoffeeScript , pilihan bahasa skrip saya untuk proyek Meteor. Berikut adalah contoh Cakefile dengan tugas untuk menjalankan tes Mocha Anda. Jika Anda menggunakan JS dengan Meteor, silakan menyesuaikan perintah untuk Makefile.
Model Meteor Anda akan membutuhkan sedikit modifikasi untuk mengekspos dirinya ke Mocha, dan ini membutuhkan pengetahuan tentang cara kerja Node.js. Pikirkan setiap file Node.js yang dieksekusi dalam cakupannya sendiri. Meteor secara otomatis memaparkan objek dalam file yang berbeda satu sama lain, tetapi aplikasi Node biasa — seperti Mocha — tidak melakukan ini. Untuk membuat model kita dapat diuji oleh Mocha, ekspor setiap model Meteor dengan pola CoffeeScript berikut:
... dan di bagian atas uji Mocha Anda, impor model yang ingin Anda uji:
Dengan itu, Anda dapat mulai menulis dan menjalankan pengujian unit dengan proyek Meteor Anda!
sumber
Meteor.whatever
fungsi apa pun . Saya mendapatkan Meteor adalah kesalahan yang tidak ditentukan. Adakah cara untuk meminta Meteor secara eksplisit mengatasi hal ini?Meteor
objek tersebut tidak dapat diakses, seperti halnya dependensi model apa pun yang diekspos oleh Meteor. Meningkatkan proses ini akan melibatkan pembuatan lingkungan aplikasi dalam Mocha, dan mengeksposMeteor
objek ke pengujian Anda. Saya pasti akan memperbarui jawaban ini setelah saya memiliki solusi pengujian yang lebih lengkap. Sementara itu, jangan ragu untuk menghubungi saya jika ada pertanyaan atau saran perbaikan.Halo semua checkout laika - framework pengujian baru untuk meteor http://arunoda.github.io/laika/
Anda dapat menguji server dan klien sekaligus.
Penafian: Saya adalah penulis Laika.
sumber
Saya menyadari bahwa pertanyaan ini sudah terjawab, tetapi saya pikir ini bisa menggunakan lebih banyak konteks, dalam bentuk jawaban tambahan yang memberikan konteks tersebut.
Saya telah melakukan beberapa pengembangan aplikasi dengan meteor, serta pengembangan paket, baik dengan mengimplementasikan paket untuk inti meteor, maupun untuk atmosfer .
Sepertinya pertanyaan Anda sebenarnya adalah pertanyaan dalam tiga bagian:
Dan, sepertinya juga ada pertanyaan bonus di sana: 4. Bagaimana menerapkan integrasi berkelanjutan untuk 1, 2, dan 3?
Saya telah berbicara dan mulai berkolaborasi dengan Naomi Seyfer (@sixolet) di tim inti meteor untuk membantu mendapatkan jawaban pasti atas semua pertanyaan ini ke dalam dokumentasi.
Saya telah mengirimkan permintaan penarikan awal yang menangani 1 dan 2 ke inti meteor: https://github.com/meteor/meteor/pull/573 .
Saya juga baru-baru ini menjawab pertanyaan ini: Bagaimana Anda menjalankan uji meteor?
Saya pikir @Blackcoat pasti menjawab 3, di atas.
Adapun bonus, 4, saya akan menyarankan menggunakan circleci.com setidaknya untuk melakukan integrasi berkelanjutan untuk aplikasi Anda sendiri. Mereka saat ini mendukung kasus penggunaan yang telah dijelaskan oleh @Blackcoat. Saya memiliki proyek di mana saya berhasil mendapatkan tes yang ditulis dalam coffeescript untuk menjalankan pengujian unit dengan mocha, seperti yang dijelaskan @Blackcoat.
Untuk integrasi berkelanjutan pada inti meteor, dan paket pintar, Naomi Seyfer dan saya mengobrol dengan pendiri circleci untuk melihat apakah kami bisa menerapkan sesuatu yang luar biasa dalam waktu dekat.
sumber
RTD sekarang sudah tidak digunakan lagi dan digantikan oleh Velocity, yang merupakan framework pengujian resmi untuk Meteor 1.0. Dokumentasi masih relatif baru karena Velocity sedang dalam pengembangan besar-besaran. Anda dapat menemukan beberapa informasi lebih lanjut tentang Velocity Github repo , Velocity Homepage dan The Meteor Testing Manual (konten berbayar)
Penafian: Saya salah satu anggota tim inti Velocity dan penulis buku ini.
Periksa RTD, kerangka pengujian penuh untuk Meteor di sini rtd.xolv.io . Ini mendukung Jasmine / Mocha / custom dan bekerja dengan JS biasa dan kopi. Ini mencakup cakupan pengujian juga yang menggabungkan cakupan unit / server / klien.
Dan proyek contoh di sini
Sebuah blog untuk menjelaskan pengujian unit dengan Meteor di sini
Pendekatan pengujian penerimaan e2e menggunakan Selenium WebdriverJS dan Meteor di sini
Semoga membantu. Penafian: Saya adalah penulis RTD.
sumber
Saya sering menggunakan halaman ini dan mencoba semua jawabannya, tetapi dari titik awal pemula saya, saya menemukan mereka cukup membingungkan. Begitu saya mendapat masalah, saya bingung bagaimana cara memperbaikinya.
Solusi ini sangat sederhana untuk memulai, jika belum sepenuhnya didokumentasikan, jadi saya merekomendasikannya untuk orang-orang seperti saya yang ingin melakukan TDD tetapi tidak yakin bagaimana pengujian di JavaScript bekerja dan perpustakaan mana yang terhubung ke apa:
https://github.com/mad-eye/meteor-mocha-web
FYI, saya menemukan bahwa saya juga perlu menggunakan paket Atmosfir router untuk membuat rute '/ tes' untuk menjalankan dan menampilkan hasil dari tes, karena saya tidak ingin itu mengacaukan aplikasi saya setiap kali dimuat.
sumber
meteor-mocha-web
withmocha-phantomjs
untuk mengotomatiskan pengujian dan untuk CI. Itu yang kami gunakan. Pengungkapan penuh - Saya salah satu pengelolameteor-mocha-web
.Tentang penggunaan tinytest, Anda mungkin ingin melihat sumber daya yang berguna:
Dasar-dasarnya dijelaskan dalam screencast ini: https://www.eventedmind.com/feed/meteor-testing-packages-with-tinytest
Setelah Anda memahami idenya, Anda akan menginginkan dokumentasi API publik untuk
tinytest
. Untuk saat ini, satu-satunya dokumentasi untuk itu ada di akhir sumbertinytest
paket: https://github.com/meteor/meteor/tree/devel/packages/tinytestJuga, screencast membicarakan tentang
test-helpers
, Anda mungkin ingin melihat semua pembantu yang tersedia di sini: https://github.com/meteor/meteor/tree/devel/packages/test-helpers Sering ada beberapa dokumentasi di dalam masing-masing mengajukanMenggali tes paket meteor yang ada akan memberikan banyak contoh. Salah satu cara untuk melakukannya adalah dengan melakukan pencarian
Tinytest.
atautest.
di direktori paket kode sumber meteorsumber
Pengujian menjadi bagian inti Meteor dalam rilis 1.3 mendatang. Solusi awal didasarkan pada Mocha dan Chai.
Diskusi asli tentang desain minimum yang layak dapat ditemukan di sini dan rincian implementasi pertama dapat ditemukan di sini .
MDG telah menghasilkan tulang awal dokumentasi panduan untuk pengujian yang dapat ditemukan di sini , dan ada beberapa contoh pengujian di sini .
Ini adalah contoh tes publikasi dari tautan di atas:
sumber
Saya melakukan tes fungsional / integrasi dengan Meteor + Mocha di browser. Saya memiliki sesuatu di sepanjang baris berikut (dalam coffeescript untuk keterbacaan yang lebih baik):
Pada klien ...
... dan di server:
Tentu saja Anda bisa melakukan sisi klien Anda pengujian unit dengan cara yang sama. Untuk pengujian integrasi, sebaiknya Anda memiliki semua infrastruktur Meteor.
sumber
Seperti yang dikatakan Blackcout, Velocity adalah kerangka kerja TDD resmi untuk Meteor. Tetapi saat ini halaman web velocity tidak menawarkan dokumentasi yang baik. Jadi saya sarankan Anda untuk menonton:
sumber
Opsi lain, yang tersedia dengan mudah sejak 0.6.0, adalah menjalankan seluruh aplikasi Anda dari paket pintar lokal, dengan jumlah kode minimum di luar paket untuk mem-boot aplikasi Anda (mungkin memanggil paket pintar tertentu yang merupakan dasar dari aplikasi).
Anda kemudian dapat memanfaatkan Meteor's Tinytest, yang bagus untuk menguji aplikasi Meteor.
sumber
Saya telah berhasil menggunakan xolvio: mentimun dan kecepatan untuk melakukan pengujian saya. Bekerja dengan sangat baik dan terus berjalan sehingga Anda selalu dapat melihat bahwa pengujian Anda berhasil.
sumber
Meteor + TheIntern
Entah bagaimana saya berhasil menguji aplikasi Meteor dengan TheIntern.js.
Padahal itu sesuai kebutuhan saya. Tapi tetap saja saya pikir itu mungkin membawa seseorang ke arah yang benar dan saya membagikan apa yang telah saya lakukan untuk menyelesaikan masalah ini.
Ada sebuah
execute
fungsi yang memungkinkan kita untuk menjalankan kode JS yang mana kita dapat mengakseswindow
objek browser danMeteor
juga.Ingin tahu lebih banyak tentang eksekusi
Ini adalah bagaimana saya
test suite
mencari Pengujian FungsionalUntuk mengetahui lebih banyak, inilah inti saya
Catatan: Saya masih dalam fase sangat awal dengan solusi ini. Saya tidak tahu apakah saya dapat melakukan pengujian rumit dengan ini atau tidak. Tapi saya cukup yakin tentang itu.
sumber
Kecepatan belum matang. Saya menghadapi masalah setTimeout untuk menggunakan kecepatan. Untuk pengujian unit sisi server, Anda dapat menggunakan paket ini .
Ini lebih cepat dari kecepatan. Velocity membutuhkan waktu yang lama ketika saya menguji spesifikasi apa pun dengan login. Dengan kode Jasmine kita dapat menguji metode dan publikasi sisi server apa pun.
sumber