Bagikan melalui


Cara menguji

Pengujian unit dan pengujian end-to-end yang disediakan di folder \Tests dijalankan sebagai bagian dari alur kerja check-in pada server build pada platform Windows dan Linux. Anda dapat menjalankan pengujian untuk platform Anda secara lokal untuk memverifikasi bahwa perubahan kode Anda tidak melanggar pengujian apa pun.

Uji unit

Pengujian unit saat ini hanya didukung (dan diperiksa) untuk build GPU.

Di Windows

Pastikan Anda menyiapkan pustaka Boost dan variabel lingkungan serta runner uji Boost untuk Visual Studio. Untuk petunjuk lihat di sini.

Mulai ulang Visual Studio dan buka menu 'Uji --> Uji Pengaturan'. Di sana atur arsitektur prosesor default ke x64 dan hapus centang opsi 'Pertahankan Mesin Eksekusi Uji Berjalan'. Di jendela Test Explorer pilih Kelompokkan menurut Sifat (di samping bidang pencarian). Setelah membangun kembali, Anda akan melihat semua pengujian unit di Test Explorer. Anda dapat menjalankan dan men-debug menggunakan menu konteks.

Di Linux

Pertama, Anda perlu menginstal pustaka Boost. Untuk petunjuk lihat di sini.

Kemudian Anda dapat membangun biner pengujian unit dengan cara yang sama seperti biner CNTK, seperti yang ditentukan di sini. Biner dibuat di folder yang sama dengan biner CNTK. Pengujian unit berikut saat ini tersedia:

  • matematika -- pengujian unit untuk operasi matematika
  • readertests -- pengujian unit untuk pembaca
  • networktests -- pengujian unit untuk operasi jaringan
  • brainscripttests -- tes unit untuk brainscript
  • evaltests -- pengujian unit untuk Eval

Anda dapat meluncurkan setiap pengujian unit dengan menjalankan file biner yang sesuai. Anda juga dapat menggunakan parameter baris perintah yang dijelaskan oleh Boost Unit Test Framework untuk mengontrol pengujian yang sedang berjalan dan output pengujian.

Pengujian end-to-end

Pengujian end-to-end CNTK dapat dijalankan di Linux dan Windows menggunakan skrip Python 'TestDriver.py' yang terletak di \Tests\EndToEndTests. Atau mereka dapat dijalankan dan di-debug dari Visual Studio. Dalam hal berikut ini kami merinci:

  • Cara menggunakan skrip TestDriver.py.
  • Prasyarat untuk menggunakan TestDriver.py pada Windows.
  • Cara menjalankan dan men-debug pengujian end-to-end dari Visual studio.

Cara menggunakan skrip TestDriver.py.

Mulai shell (shell CygWin Bash di bawah Windows) dan ubah direktori ke folder Tests\EndToEndTests dari repositori CNTK lokal Anda (catatan: c:\src\CNTK di CygWin adalah /cygdrive/c/src/CNTK/). Mulailah dengan salah satu perintah berikut untuk mempelajari penggunaan dan opsi TestDriver:

python TestDriver.py -h

python TestDriver.py run -h

python TestDriver.py list -h

Untuk mencantumkan semua pengujian end-to-end yang tersedia, jalankan

python TestDriver.py list

Untuk menjalankan satu pengujian, misalnya Image/QuickE2E, jalankan

python TestDriver.py run Image/QuickE2E

Anda dapat menambahkan misalnya '-d gpu' untuk hanya menjalankan pengujian menggunakan GPU atau '-f debug' untuk hanya menjalankan pengujian menggunakan build debug. Lihat python TestDriver.py run -h untuk semua opsi.

Untuk menjalankan semua pengujian dari build malam yang dijalankan

python TestDriver.py run -t nightly

Prasyarat untuk menggunakan TestDriver.py pada Windows.

  1. Instal Anaconda Python 2.7 (bukan 3.5) dari sini: https://www.continuum.io/downloads yang berisi sebagian besar paket Python populer. Atau instal Python 2.7 https://www.python.org/downloads/ dan instal paket tambahan yang diperlukan seperti yang diminta.

  2. Instal CygWin dari http://cygwin.com/install.html Selama penginstalan pilih "Instal dari Internet" (pilihan default). PENTING: Pada layar Pilih Paket ketik "yaml" di bidang pencarian dan perluas bagian Python. Pilih "python2-yaml: Python Lib YAML bindings" (NOT "python3-yaml"). Demikian pula, ketik "python2-setuptools" di bidang pencarian, perluas bagian Python, dan pilih "python2-setuptools" untuk penginstalan. Kemudian selesaikan penginstalan.

  3. Pastikan Anda telah menginstal Microsoft MPI (harus ada variabel lingkungan bernama MSMPI_BIN. Untuk ini, Anda perlu mengunduh dan menjalankan exe dan bukan msi)

  4. Luncurkan shell Cygwin Bash.

  5. Jalankan "easy_install-2.7 pip"

  6. Jalankan "pip install six"

Catatan: Beberapa pengujian memerlukan variabel lingkungan bernama CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY menunjuk ke tempat data berada. Jika data eksternal tidak tersedia, pengujian tersebut akan dilewati.

Cara menjalankan dan men-debug pengujian end-to-end dari Visual Studio.

Anda dapat membuat argumen perintah debug Visual Studio menggunakan -n opsi pada TestDriver untuk pengujian end-to-end tertentu:

python TestDriver.py run -n Image/QuickE2E

Dari output perintah di atas, Anda cukup menyalin 'ARGUMEN perintah debugging VS' ke argumen perintah proyek CNTK di Visual Studio (Klik kanan pada proyek CNTK - Properti ->> Properti Konfigurasi -> Debugging -> Argumen Perintah). Mulai debugging proyek CNTK.