用文件系統(tǒng)來編排測試套件

2018-02-24 15:41 更新

用文件系統(tǒng)來編排測試套件

編排測試套件的各種方式中,最簡單的大概就是把所有測試用例源文件放在一個測試目錄中。通過對測試目錄進行遞歸遍歷,PHPUnit 能自動發(fā)現(xiàn)并運行測試。

現(xiàn)在來看看 sebastianbergmann/money 這個庫的測試套件。在這個項目的目錄結(jié)構(gòu)中,可以看到 tests 目錄下的測試用例類鏡像了 src 目錄下被測系統(tǒng)(SUT, System Under Test)的包(package)與類(class)的結(jié)構(gòu):

src                                 tests
`-- Currency.php                    `-- CurrencyTest.php
`-- IntlFormatter.php               `-- IntlFormatterTest.php
`-- Money.php                       `-- MoneyTest.php
`-- autoload.php

要運行這個庫的全部測試,只要將 PHPUnit 命令行測試執(zhí)行器指向測試目錄即可:

phpunit --bootstrap src/autoload.php tests

PHPUnit 5.0.0 by Sebastian Bergmann.

.................................

Time: 636 ms, Memory: 3.50Mb

OK (33 tests, 52 assertions)

Note

當(dāng) PHPUnit 命令行測試執(zhí)行器指向一個目錄時,它會在目錄下查找 *Test.php 文件。

如果只想運行在 CurrencyTest 文件中的 tests/CurrencyTest.php 測試用例類中聲明的測試,可以使用如下命令:

phpunit --bootstrap src/autoload.php tests/CurrencyTest

PHPUnit 5.0.0 by Sebastian Bergmann.

........

Time: 280 ms, Memory: 2.75Mb

OK (8 tests, 8 assertions)

如果想要對運行哪些測試有更細粒度的控制,可以使用 --filter 選項:

phpunit --bootstrap src/autoload.php --filter testObjectCanBeConstructedForValidConstructorArgument tests

PHPUnit 5.0.0 by Sebastian Bergmann.

..

Time: 167 ms, Memory: 3.00Mb

OK (2 test, 2 assertions)

Note

這種方法的缺點是無法控制測試的運行順序。這可能導(dǎo)致測試的依賴關(guān)系方面的問題,參見 the section called “測試的依賴關(guān)系”。在下一節(jié)中,可以看到如何用 XML 配置文件來明確指定測試的執(zhí)行順序。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號