Saya memiliki beberapa sederhana karma / jasmine unit-tes yang dijalankan terhadap suatu aplikasi angularjs. Saya menggunakan versi terbaru dari Chrome dan menjalankan tes saya dari dalam WebStorm IDE.
Kadang-kadang tes suite berjalan sangat cepat (0.24 detik)
Kadang-kadang persis sama test suite terhadap kode yang sama persis berjalan sangat lambat (120 detik)
Saya telah mencoba setiap akal sehat memperbaiki. Saya telah menjelajahi web untuk mencoba dan menemukan apa yang saya lakukan salah.
Mengapa saya tes berjalan begitu lambat?
Jawabannya ternyata sangat sederhana.
Saya menggunakan Chrome untuk menjalankan karma server. Ketika anda pertama kali memulai karma server instance dari Chrome dimulai sebagai dimaksimalkan jendela. Jadi tentu saja anda meminimalkan ini sehingga anda dapat melihat tes berjalan.
Masalahnya adalah bahwa Chrome kelaparan setiap diminimalkan atau sekunder tab (beralih tab) dari siklus CPU.
Oleh karena itu, jika anda meminimalkan browser contoh menjalankan karma server, atau hanya beralih ke tab yang berbeda, maka karma server sangat kelaparan CPU dan tes memakan waktu yang lama untuk menyelesaikan.
Solusinya adalah untuk menjaga karma tab active. Jendela browser dapat tersembunyi di balik jendela lain tapi karma tab must akan dipilih tab dan browser must tidak minimised.
Mengikuti aturan sederhana ini akan memastikan bahwa tes anda selalu berjalan pada kecepatan penuh.
Biofractal telah menjawab sendiri pertanyaan dan anda bisa melakukan itu. Anda juga bisa mengatur tes anda untuk berjalan di PhantomJS atau Chrome Tanpa kepala yang pada dasarnya memungkinkan unit tes untuk menjalankan hanya pada baris perintah anda, dengan demikian menghapus mempengaruhi dengan anda yang sebenarnya browser.