我在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.
我的问题是列出的不同文件的长列表。
我只想在那里看到我的测试脚本。我错过什么了吗?
简写:
这是PHPUnit的一个bug。我已经修好了。下一个小版本就可以了。
长版:
您已经注意到您的文件包含在backtrace
中 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的一个bug。
我建议 编辑:我已经推送了一个修复。应该在you file an issue at the github issue tracker
,反向跟踪过滤似乎在窗口上坏了,我会看看我是否能照顾到这一点。PHPUnit 3.6.6
中解决(当它被释放时)。
编辑:是的。问题似乎来自PHPUnit_Util_Filter::phpunitFiles();返回'
而不是/
的路径。
如果您将以下代码放入:PHPUnit/Util/GlobalState.php
中的第412行。(return语句前)
foreach(self::$phpunitFiles as $key => $value) {
unset(self::$phpunitFiles[$key]);
self::$phpunitFiles[str_replace("/", "''", $key)] = $value;
}
那么你就得到了一个漂亮的回溯。我会确保在3.6.6中用一个更好的补丁修复它。