Saya berjuang untuk menjalankan metode uji tunggal yang disebutkan testSaveAndDrop
dalam file escalation/EscalationGroupTest.php
dengan phpunit
. Saya mencoba kombinasi berikut:
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=escalation/EscalationGroupTest.php::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=EscalationGroupTest.php::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=EscalationGroupTest::testSaveAndDrop
phpunit EscalationGroupTest escalation/EscalationGroupTest.php --filter=testSaveAndDrop
Dalam setiap kasus, semua metode pengujian dalam file escalation/EscalationGroupTest.php
dijalankan. Bagaimana cara memilih SATU metode saja?
Nama kelasnya EscalationGroupTest
dan versi phpunit
3.2.8.
Jawaban:
Perintah berikut menjalankan tes pada satu metode:
Untuk versi phpunit yang lebih baru, itu hanya:
sumber
phpunit --filter methodName path/to/testing/file
, tidakClassName
.Saya lebih suka menandai tes dalam anotasi sebagai
Kemudian jalankan dengan
Tidak perlu menentukan path lengkap di baris perintah, tetapi Anda harus ingat menghapus ini sebelum komit, bukan untuk mengacaukan kode.
Anda juga dapat menentukan beberapa grup untuk satu tes
sumber
@group failing, Integration
<phpunit>
: <groups><sertakan> <group> gagal </ grup > </include> </groups>@depends
dari yang lain sehingga Anda harus menentukan semua tes yang saling berhubungan dan dengan demikian menggunakan@group
anotasi.Inilah jawaban yang lebih umum:
Jika Anda yakin nama metode itu unik, Anda hanya bisa memfilter menurut nama metode (ini cocok untuk saya)
Namun lebih aman untuk menentukan path / referensi file juga
Contoh:
Catatan cepat: Saya perhatikan bahwa jika saya memiliki fungsi bernama
testSave
dan fungsi lain yang dinamaitestSaveAndDrop
perintahphpunit --filter testSave
juga akan berjalantestSaveAndDrop
dan fungsi lain yang dimulai dengantestSave*
, itu aneh !!sumber
/testSave$/
Perintah berikut akan menjalankan tes dengan tepat
testSaveAndDrop
.sumber
\b
bukannya$
akhirnya melakukan trik:--filter '/::testSaveAndDrop\b/'
.'/::testSaveAndDrop\b/'
dan'/::testSaveAndDrop$/'
bekerja untuk saya seperti iniphpunit --filter ClassName::methodName$
danphpunit --filter ClassName::methodName\b
(di Linux)untuk menjalankan tes phpunit di laravel dengan banyak cara ..
untuk tes kelas tunggal:
untuk metode uji tunggal:
untuk menjalankan tes dari semua kelas dalam namespace:
untuk uji coba cara lebih lanjut lihat lebih banyak
sumber
Jadi, sesuatu seperti ini
Tanpa
=
dan dengan'
https://phpunit.de/manual/3.7/en/textui.html
sumber
EscalationGroupTest
sedang diproses.--filter
ke sebelum nama file dan segala sesuatunya berfungsi dengan benar.No tests executed!
pada PHPUnit4.8.35
@ Schleis Bagaimana tepatnya Anda mengubah perintah?Contoh dengan nama metode khusus.
Contoh dengan kata kunci uji
sumber
Jika Anda menggunakan netbeans, Anda dapat mengklik kanan pada metode pengujian dan klik "Jalankan Metode Tes Berfokus".
sumber
Anda dapat mencoba ini, saya dapat menjalankan satu Uji kasus
Misalnya:
Jika Anda ingin menjalankan satu test case di Laravel 5.5 Coba
Misalnya:
sumber
Alasan semua tes Anda dijalankan adalah karena Anda memilikinya
--filter
tanda setelah nama file. PHPUnit tidak membaca opsi sama sekali dan menjalankan semua kasus uji.Dari layar bantuan:
Jadi pindahkan
--filter
argumen sebelum file tes yang Anda inginkan seperti yang disebutkan dalam @Alex dan @Ferid Mövsümov menjawab. Dan Anda seharusnya hanya memiliki tes yang ingin Anda jalankan.sumber
--filter
opsinya adalah setelah nama file. Dua jawaban lainnya memiliki jawaban yang benar tetapi tidak menunjukkan mengapa filter diterapkan.Jika Anda menggunakan file konfigurasi XML, Anda dapat menambahkan yang berikut di dalam
phpunit
tag:Lihat https://phpunit.de/manual/current/en/appendixes.configuration.html
sumber
Saya terlambat ke pesta. Tetapi sebagai pribadi saya benci untuk menulis seluruh baris.
Sebagai gantinya, saya menggunakan cara pintas berikut dalam file .bash_profile pastikan untuk sumber .bash_profile file setelah menambahkan alias baru kalau tidak itu tidak akan berfungsi.
Pemakaian:
Jika Anda menggunakan Visual Studio Code Anda dapat menggunakan paket berikut untuk membuat tes Anda mudah.
Anda kemudian dapat mengatur ikatan tombol di pengaturan. Saya menggunakan Command + T binding di MAC saya.
Sekarang setelah Anda meletakkan kursor pada fungsi apa pun dan kemudian menggunakan kunci yang mengikat maka secara otomatis akan menjalankan tes tunggal.
Jika Anda perlu menjalankan seluruh kelas maka tempatkan kursor di atas kelas dan kemudian gunakan kunci yang mengikat.
Jika Anda memiliki hal-hal lain maka selalu berhubungan dengan Terminal
Selamat Coding!
sumber
Anda harus menggunakan --filter untuk menjalankan metode pengujian tunggal
php phpunit --filter "/::testMethod( .*)?$/" ClassTest ClassTest.php
Filter di atas akan menjalankan testMethod sendirian.
sumber