我完全被困住了。起初我的代码:
文件sample000.phpt
--TEST--
Basic test
--DESCRIPTION--
Lowlevel basic test
--FILE--
<?php
echo 'Hello World!';
?>
--EXPECT--
Hello World!
文件PhptTestCase.php
<?php
require_once 'PHPUnit/Extensions/PhptTestCase.php';
class PhptTestCase extends PHPUnit_Extensions_PhptTestCase
{
public $result;
public function __construct( $file ) {
$options = array( 'include_path' => 'D:\\xampp\\php' );
parent::__construct( $file, $options );
}
}
文件phptTest.php
<?php
class PhptTest extends PHPUnit_Framework_TestCase
{
public $object;
public function setUp() {}
public function tearDown() {}
public function testAll() {
require_once 'phptTestCase.php';
$file = __DIR__ . '/phpt-tests/sample000.phpt';
$phpt = new PhptTestCase( $file );
$result = $phpt->run();
$this->assertTrue( $result->wasSuccessful() );
var_dump( $result->failures() );
}
}
pear run-tests sample000.phpt
从命令行运行工作正常。跑步phpunit PhptTest.php
总会失败。
经过一番研究,我转储了结果,var_dump( $result->failures() );
发现找不到 php 可执行文件:
array(1) {
[0] =>
class PHPUnit_Framework_TestFailure#441 (2) {
protected $failedTest =>
class PhptTestCase#434 (3) {
public $result =>
NULL
protected $filename =>
string(84) "D:\\htdocs\\[...]\\phpt/phpt-tests/sample000.phpt"
protected $options =>
array(1) {
...
}
}
protected $thrownException =>
class PHPUnit_Framework_ComparisonFailure#440 (12) {
protected $expected =>
string(12) "Hello World!"
protected $actual =>
string(94) "Der Befehl "C:\\php\\php.exe" ist entweder falsch geschrieben oder\nkonnte nicht gefunden werden."
<-- snip -->
protected $file =>
string(53) "D:\\xampp\\php\\pear\\PHPUnit\\Extensions\\PhptTestCase.php"
protected $line =>
int(209)
private $trace =>
array(17) {
...
}
private $previous =>
NULL
}
}
}
我认为这是使用 PHPUnit 运行测试失败的原因:
Der Befehl "C:\php\php.exe" ist entweder falsch geschrieben oder\nkonnte nicht gefunden werden。
翻译:“C:\php\php.exe”命令拼写错误或找不到。我的 php 可执行文件安装在D:/xampp/php
我尝试在 XML 配置文件中为 PHPUnit( phpunit.xml
) 设置包含路径,并尝试将包含路径作为选项传递给类PHPUnit_Extensions_PhptTestCase
。
谁能告诉我如何配置 PHPUnit 以便它可以找到 php 可执行文件?