今天讓我們來看 phpunit.xml 吧!
phpunit.xml 位在 Laravel 專案根目錄底下,顧名思義,它是一個設定 PHPUnit 執行方式的設定XML檔,PHPUnit 提供了不少設定值可供設定,這邊只提最重要的幾個:
stopOnFailure
true
時,將會在遇到第1個測試案例測試失敗時,停止後續測試程式碼的執行。<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd" stopOnFailure="true">
<!-- 下略 -->
</phpunit>
stopOnError
true
時,將會在遇到第1個測試案例測試錯誤時,停止後續測試程式碼的執行。特別注意的是,Error 與前 Failure 不同,Error 程式碼語法有錯誤,Failure 是未通過測試驗證。<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd" stopOnError="true">
<!-- 下略 -->
</phpunit>
bootstrap
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php">
<!-- 下略 -->
</phpunit>
colors
true
時,執行PHPUnit時將於終端機上輸出含色彩之文字,建議保留預設值即可。<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd" colors="true">
<!-- 下略 -->
</phpunit>
<testsuites>
— <testsuite>
— — <directory>
<?xml version="1.0" encoding="UTF-8"?>
<phpunit>
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<!-- 下略 -->
</phpunit>
<coverage>
— <include>
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">./app</directory>
</include>
</coverage>
— <exclude>
<coverage processUncoveredFiles="true">
<exclude>
<directory suffix=".php">./app/services</directory>
</exclude>
</coverage>
<php>
— <env>
.env
的設定值,通常會設定以下幾個 env 值:APP_ENV
DB_CONNECTION
DB_DATABASE
CACHE_DRIVER
QUEUE_CONNECTION
SESSION_DRIVER
<?xml version="1.0" encoding="UTF-8"?>
<phpunit>
<!-- 上略 -->
<php>
<env name="APP_ENV" value="testing"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>
<env name="MAIL_MAILER" value="array"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="TELESCOPE_ENABLED" value="false"/>
</php>
</phpunit>
以上就是今天的介紹囉!
下一篇我們來看看測試覆蓋率吧。
如果您喜歡這篇文章,歡迎加入追蹤以接收新文章通知 😄