16/12/2017 - BEHAT, PHPUNIT, SYMFONY
Testler çalıştığında seri olarak çalışırlar, bu da zaman alır. Bu örneğimizde PHPUnit testlerini paralel olarak çalıştıracağız. Eğer isterseniz ilgili komutu değiştirip Behat testlerinide paralel olarak çalıştırabilirsiniz. Dokümantasyon'u okumanız yeterli olacaktır.
Eğer testleriniz veritabanı içindeki bilgilerin durumuna bağlıysa veya email kontrolü yapıyorlarsa, bazen rasgele kırılmalar olacaktır. Bu gibi durumları engellemek sizin kodlama yeteneğinize bağlır.
Terminalde composer require liuggio/fastest --dev
komutunu çalıştırıp Fastest paketini yükleyin.
$ vendor/bin/phpunit
PHPUnit 6.4.3 by Sebastian Bergmann and contributors.
............................................................. 61 / 4011 ( 1%)
............................................................. 122 / 4011 ( 3%)
............................................................. 183 / 4011 ( 4%)
............................................................. 7930 / 8011 ( 98%)
............................................................. 7991 / 8011 ( 99%)
.................... 8011 / 8011 (100%)
Time: 9.87 seconds, Memory: 24.00MB
OK (8011 tests, 22023 assertions)
Varsayılan olarak 2
take paralel işlemci çalışır. Eğer 4
paralel işlemciyle daha fazla hız kazanmak isterseniz, -p ${TESTS_PROCESSES:-4}
bölümünü komutun sonuna eklemiz yeterli olacaktır.
$ vendor/liuggio/fastest/fastest -x "phpunit.xml.dist" "vendor/phpunit/phpunit/phpunit -c phpunit.xml.dist {};" -vv
- 3 shuffled test classes into the queue.
- Will be consumed by 2 parallel Processes.
1 1/3 ✔ 287 ms /var/www/html/symfony/common/tests/CustomerBundle/Controller/CustomerControllerTest.php
2 2/3 ✔ 2 s 516 ms /var/www/html/symfony/common/tests/CustomerBundle/Service/CustomerServiceTest.php
1 3/3 ✔ 3 s 871 ms /var/www/html/symfony/common/tests/CustomerBundle/Command/CustomerCommandTest.php
✔ You are great!
Time: 4 seconds 419 milliseconds, Memory: 16.00 MiB
Eğer ekranda daha farklı çıktılar isterseniz, aşağıdaki komutları deneyebilirsiniz.
find tests/ -name "*Test.php" | ./vendor/liuggio/fastest/fastest "vendor/phpunit/phpunit/phpunit -c phpunit.xml.dist {};"
find tests/ -name "*Test.php" | ./vendor/liuggio/fastest/fastest "vendor/phpunit/phpunit/phpunit -c phpunit.xml.dist {};" -v
find tests/ -name "*Test.php" | ./vendor/liuggio/fastest/fastest "vendor/phpunit/phpunit/phpunit -c phpunit.xml.dist {};" -vv
vendor/liuggio/fastest/fastest -x "phpunit.xml.dist" "vendor/phpunit/phpunit/phpunit -c phpunit.xml.dist {};"
vendor/liuggio/fastest/fastest -x "phpunit.xml.dist" "vendor/phpunit/phpunit/phpunit -c phpunit.xml.dist {};" -v
vendor/liuggio/fastest/fastest -x "phpunit.xml.dist" "vendor/phpunit/phpunit/phpunit -c phpunit.xml.dist {};" -vv