在我們的項目中,我們正在運行PHPUnit測試,該測試使用Selenium和Curl在不同的開發服務器上打開頁面。服務器B有一臺運行該服務器的Apache服務器。服務器A通過同步(Rsync)項目文件到開發服務器B來啓動測試工作,所以兩個服務器上的項目文件都是相同的。在PHP中收集遠程代碼覆蓋範圍
在PHP中遠程收集代碼覆蓋統計信息有什麼可能?
我們已經使用Xdebug收集代碼覆蓋在該服務器上本地運行的單元測試(PHPUnit的使用項目文件直接,因此start/stop collecting code coverage report)
更新:
在服務器B ,該網站由Apache運行的PHP實例呈現。當在服務器A上使用Selenium/Curl PHP實例進行測試時,會使用命令行版本。 Apache的服務器上運行B.該實例不能配置文件中的PHP實例
當運行單元測試(不使用其他服務器,而不是使用硒/捲曲),我們用這樣的命令:
phpunit --coverage-html ./results/codecoverage/ ATestFile.php
這將通過在PHP Cli中使用Xdebug爲「ATestFile.php」中的測試生成代碼覆蓋率報告。
您可以對目前爲止絆倒的問題有更具體的瞭解嗎?據推測,你也可以在服務器B上啓動XDebug,那麼問題是什麼? –
我的更新回答了您的一些問題嗎?問題是當服務器B是使用代碼庫/專業文件運行PHP實例時,在服務器A上生成代碼覆蓋率報告。 – HNygard
所以問題是你不想在服務器B上運行PHPUnit,因爲所有的測試都是由服務器A完成的。 XDebug仍然會在服務器B上運行,您只需在那裏不使用PHPUnit。我認爲這會讓你暴露於「原始」XDebug,你必須弄清楚PHPUnit如何從那裏收集數據。如果您有興趣,我可以爲您提供一個非XDebug解決方案,可以讓您從B(如果您在意的話可以從系統A收集)收集覆蓋率數據。 –