Saya mencoba menulis fungsi / metode untuk proyek saya, yang akan menanyakan kepada pengguna, semua kasus uji mana yang akan Anda jalankan? Ini terlihat seperti di bawah ...,
Test_Cases_1
|_TestNo1
|_TestNo2....so on
Test_Cases_2
|_TestNo1
|_TestNo2....so on
....
....so on
Test_Cases_N
|_TestNo1
|_TestNo2....so on
Jadi, sekarang tantangannya adalah saat menjalankan proyek itu harus memberi tahu saya apa semua kasus uji yang ingin Anda jalankan? Jika saya memilih Test_Cases_1
dan Test_Cases_N
. Maka itu harus menjalankan dua kasus uji ini dan harus mengecualikan semua lainnya dari Test_Cases_2 to ....
. Di jendela hasil juga saya ingin melihat hasil dari Test_Cases_1
dan Test_Cases_N
.
Jadi, jika saya akan melihat GoogleTest, ada metode yang disebut test_case_to_run_count()
; Tetapi semua test cases
didaftarkan dengan metode Test_F (). Jadi, saya melakukan banyak analisis, tetapi tetap tidak menemukan solusi apa pun. Tolong bantu aku.
sumber
Tree
dariTestCases
danTestNo
. Jadi, apakah menurut Anda--gtest_filter=..
akan membantu?int main(int argc, char **argv) { //::testing::GTEST_FLAG(list_tests) = true; // For Testing InitGoogleTest(&argc, argv); ::testing::GTEST_FLAG(list_tests) = true; ........ RUN_ALL_TEST();...}
Tapi hanya mencetak Testcase dan TestNo. dan tetapi tidak menjalankan tes. Jadi, bagaimana saya bisa menjalankan tes sekarang?Meringkas jawaban @Rasmi Ranjan Nayak dan @nogard dan menambahkan opsi lain:
Di konsol
Anda harus menggunakan bendera
--gtest_filter
, seperti(Anda juga dapat melakukan ini di Properti | Properti Konfigurasi | Debugging | Argumen Perintah)
Tentang lingkungan
Anda harus mengatur variabel
GTEST_FILTER
sepertiDi kode
Anda harus menetapkan bendera
filter
, sepertisehingga fungsi utama Anda menjadi seperti
Lihat bagian Menjalankan Subset Pengujian untuk info lebih lanjut tentang sintaks string yang dapat Anda gunakan.
sumber
Akhirnya saya mendapat jawaban,
::test::GTEST_FLAG(list_tests) = true;
// Dari program Anda, bukan konsol wrt.Jika Anda ingin menggunakan
--gtest_filter =*;
/* =*, =xyz*... etc*/
// Anda perlu menggunakannya di Konsol.Jadi, persyaratan saya adalah menggunakannya dari program bukan dari konsol.
Updated:-
Akhirnya saya mendapat jawaban untuk mengupdate yang sama dari program.
Jadi, terima kasih atas semua jawabannya.
Kalian orang-orang hebat.
sumber