我在Windows 7上安装了PHPUnit,使用PHP和Pear。
我有一个基本的测试脚本,首先是:
<?php
class StackTest extends PHPUnit_Framework_TestCase
{
public function testTest()
{
$this->assertTrue(false);
}
}
我在命令提示符下运行它:
phpunit unittest testTest.php
获得以下回报:
PHPUnit 3.6.5 by Sebastian Bergmann.
F
Time: 0 seconds, Memory: 2.75Mb
There was 1 failure:
1) StackTest::testTest
Failed asserting that false is true.
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\Constraint.php:145
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\Constraint.php:92
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\Assert.php:2100
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\Assert.php:854
C:\Users\lbassett\Dropbox\Projects\Test\testTest.php:10
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestCase.php:939
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestCase.php:801
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestResult.php:649
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestCase.php:748
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestSuite.php:772
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\Framework\TestSuite.php:745
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\TextUI\TestRunner.php:325
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\TextUI\Command.php:187
C:\Program Files (x86)\PHP\PEAR\pear\PHPUnit\TextUI\Command.php:125
C:\Program Files (x86)\PHP\PEAR\phpunit:44
FAILURES!
Tests: 1, Assertions: 1, Failures: 1.
我的问题是列出的不同文件的长列表。
我只想在那里看到我的测试脚本。我错过了什么吗?
答案 0 :(得分:3)
这是PHPUnit中的一个错误。 I've fixed it.下一个次要版本可以使用。
您已经注意到您的文件包含在回溯中
C:\Users\lbassett\Dropbox\Projects\Test\testTest.php:10
所以问题是为什么你的课程周围还有其他东西。
PHPUnit 应过滤该回溯并删除所有PHPUnit类,但由于某些原因似乎不起作用。
linux上的输出:
PHPUnit 3.6.5 by Sebastian Bergmann.
F
Time: 0 seconds, Memory: 3.00Mb
There was 1 failure:
1) failingTest::testFail
Failed asserting that false is true.
/home/edo/phpunit-dev/oneFailingTest/failingTest.php:6
我起初期待Program Files
中的空格出现问题,但我已将其安装在没有空格的文件夹中,并且它也会“中断”。
对我来说,这是PHPUnit中的一个错误。
我建议 编辑:I've pushed a fix。它应该在you file an issue at the github issue tracker
回溯过滤似乎在Windows上被破坏了,我会看看我是否可以处理它。PHPUnit 3.6.6
(当它被释放时)解决。请参阅修改。
编辑:是的。问题似乎来自PHPUnit_Util_Filter :: phpunitFiles();使用\
而不是/
返回路径。
如果您将以下代码放在:PHPUnit/Util/GlobalState.php
的第412行。(在返回语句之前)
foreach(self::$phpunitFiles as $key => $value) {
unset(self::$phpunitFiles[$key]);
self::$phpunitFiles[str_replace("/", "\\", $key)] = $value;
}
然后你会得到漂亮的回溯。我会看到它在3.6.6中修复了一个更好的补丁。