我有多個「應用程序的一個PHP的MVC框架,在此制度下的組織去PHPUnit:多引導程序或XML文件?
\project\apps\app1\
\project\apps\app2\
\project\apps\shared\
每個應用程序都可以有它自己的一套控制器
\project\apps\app1\controllers\FooContoller.php
\project\apps\app2\controllers\FooContoller.php
\project\apps\shared\controllers\BarContoller.php
我想設置我的PHPUnit測試空間能夠測試每個應用程序目錄,但我希望能夠以「最佳」方式進行測試。
的PHPUnit的設置是這樣的:
\project\PHPUnit
\project\PHPUnit\phpunit.xml
\project\PHPUnit\apps\app1\bootstrap.php
\project\PHPUnit\apps\app1\controllers
\project\PHPUnit\apps\app1\controllers\FooControllerTest.php
\project\PHPUnit\apps\app2\bootstrap.php
\project\PHPUnit\apps\app2\controllers
\project\PHPUnit\apps\app2\controllers\FooControllerTest.php
現在,這裏的問題:什麼是「最佳實踐」的方式來配置我phpunit.xml文件?現在,我試圖將這兩個應用程序作爲自己的測試套件包含在XML文件中,但我很快遇到了「無法重新聲明類:FooController」。
在我看來,理想的情況是配置的XML,這樣所有的測試跑了APP1然後記憶被「清除」和所有的測試均運行APP 2。
然而,從最佳實踐來看,最好是有多個XML文件,每個APP都有一個文件。 (那麼也許一個批處理/ shell腳本文件來運行「測試所有」或測試X)
如果我們看一個「典型」 PHPUnit的XML配置文件:
<phpunit bootstrap="./apps/app1/bootstrap.php" colors="true">
<testsuite name="App1TestSuite">
<directory>./</directory>
</testsuite>
<filter>
<whitelist>
<directory suffix=".php">./apps/app1/controllers/</directory>
<directory suffix=".php">./apps/shared/</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="./log/report.html" charset="UTF-8"
yui="true" highlight="true"
lowUpperBound="50" highLowerBound="80"/>
<log type="testdox-html" target="./log/testdox.html" />
</logging>
</phpunit>
我應該去與其中的許多?或者,我應該添加標記,並將所有文件設置合併爲一個XML配置。
如果最佳實踐是'單一配置'...有誰知道你如何去啓用多個'bootstraps'?由於每個APP加載的全局變量略有不同,有些會加載同名命名類的稍微不同的版本,因此需要清除所有內容並重新開始。
我有興趣從一開始就構建「最佳」測試系統,但顯然在我的知識中有一些漏洞。
不幸的是:SI認爲phpunit組很少發展,這個問題很容易解決。 。 – inf3rno 2013-04-18 01:03:30