Bagikan melalui


Paralel

TAEF menyediakan mekanisme untuk menjalankan pengujian secara paralel di beberapa prosesor.

Jaminan Paralelisme

  • Tidak ada dua pengujian yang tidak ditandai sebagai paralel yang akan pernah dijalankan secara bersamaan.
  • Pengujian paralel dapat dijalankan bersamaan dengan pengujian paralel dan non-paralel lainnya.
  • Semua pengaturan dan pembersihan modul/kelas/pengujian akan dijalankan secara linier sebelum dan sesudah pengujian yang relevan dalam proses yang sama.
  • Pengaturan modul/kelas dapat dijalankan secara paralel pada proses yang berbeda jika modul atau kelas berisi setidaknya satu pengujian paralel.
  • Mode eksekusi paralel tidak kompatibel dengan mekanisme eksekusi "/inproc ".

Menandai Pengujian sebagai Paralel yang Dapat Diparalelkan

Contoh (kode asli):

class MyTests
{

    TEST_CLASS(MyTests);

    BEGIN_TEST_METHOD(ParallelTest)
        TEST_METHOD_PROPERTY(L"Parallel", L"true")
    END_TEST_METHOD()
};

Seperti metadata umum lainnya di TAEF, ini dapat ditentukan pada tingkat kelas atau modul & akan diwarisi oleh semua pengujian yang terkandung dalam kelas atau modul tersebut. Misalnya, untuk menandai seluruh rakitan sebagai paralel, Anda dapat melakukan hal berikut (di luar kelas atau spesifikasi pengujian apa pun) dalam file cpp yang dikompilasi ke dalam DLL pengujian Anda:

BEGIN_MODULE()
    MODULE_PROPERTY(L"Parallel", L"true");
END_MODULE()

Cakupan yang lebih luas ini kemudian dapat ditimpa pada cakupan yang lebih kecil untuk menonaktifkan paralelisme untuk kasus atau kelas pengujian tertentu sebagai berikut:

class MyTests
{
    TEST_CLASS(MyTests);

    BEGIN_TEST_METHOD(NonParallelTest)
        TEST_METHOD_PROPERTY(L"Parallel", L"false");
    END_TEST_METHOD()
};

Pengaturan mana pun yang paling dekat dengan metode pengujian (metadata metode adalah yang paling dekat, maka kelas, kemudian modul) akan digunakan untuk memutuskan apakah akan menjalankan pengujian ini secara paralel dengan pengujian lain.

Mengaktifkan Paralelisme di Prompt Perintah

Eksekusi paralel adalah fitur keikutsertaan. Meskipun pengujian dapat ditandai sebagai paralel, TAEF akan terus menjalankan pengujian secara linier kecuali mode eksekusi paralel diaktifkan pada prompt perintah:

te unittests\* /parallel