2015-06-13 24 views
1

我正在嘗試爲我的wordpress插件編寫php單元測試,並且一直遵循writing-wordpress-plugin-unit-tests教程。我已經在本地克隆了'core.trac.wordpress.org/browser/tests/trunk/includes'WP_UnitTestCase - 如何使用phpunit正確配置include_path PHAR

我已經通過PHAR機制安裝了phpunit,如下所述:https://phpunit.de/manual/current/en/installation.html#installation.requirements。我也有一個composer.json配置

[14:11:[email protected]~]$ phpunit --version 
PHPUnit 4.7.3 by Sebastian Bergmann and contributors. 

在我/etc/php.ini中的文件,我有

include_path="." 

運行我PHPUnit的我得到這個錯誤

[14:18:[email protected]]$ phpunit 
PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Autoload.php' (include_path='.') in /Users/pauloconnell/projects/bhaawp/wp-phpunit/bootstrap.php on line 7 

的bootstrap.php文件有這個包括

<?php 
/** 
* Installs WordPress for running the tests and loads WordPress and the test libraries 
*/ 
require_once 'PHPUnit/Autoload.php'; 

我想我需要將phpunit文件夾添加到路徑,但是我有一個心理障礙,應該在哪裏設置?

+0

在[WordPress開發SE站點](https://wordpress.stackexchange.com/)上提問可能會更好。 –

+0

您應該可以克隆主幹/測試而不是測試/主幹。它有所不同,因爲測試/主幹是舊的,不再維護。 –

回答

1

您需要改爲克隆https://core.trac.wordpress.org/browser/trunk/tests/phpunit/includes/。你克隆的是舊的,不再更新。

您會看到該行不再存在於new bootstrap.php中。

+0

謝謝 - 拉下了最新的代碼,但我仍然有相同的錯誤。你能解釋一下從哪裏加載了新的bootstrap.php文件,因爲phpunit.xml不再引用它。 – emeraldjava

+1

@emeraldjava - phpunit.xml需要引用您自己的引導文件,這應該反過來包含WordPress的「新」bootstrap.php文件。 –

2

PHPUnit沒有名爲PHPUnit/Autoload.php(已有)的文件。

如果Wordpress的測試套件和/或用於測試Wordpress插件的最佳實踐提及/使用該文件,那麼這將表明Wordpress依賴於過時的PHPUnit版本。

+0

謝謝 - 你可能有一個PHPUnit庫應該被加載的正確方式的例子嗎?我已閱讀您網站上的文檔,但仍不清楚我應該做出什麼改變。 – emeraldjava

+0

沒有必要加載它。如果你正在使用PHAR,你就會全部設置好,因爲PHAR的bootstrap會處理它。如果您使用的是Composer,那麼您使用的是Composer生成的自動加載器。 –