2011-11-19 37 views
3

我正在尝试编写一个PHPUnit extiontion的测试,我正在研究哪个测试需要一个正则表达式匹配器。为什么梨不能识别phpt测试中的正则表达式?

PHPT文件的文档指出有一个%r标志可用于匹配--EXPECTF--测试部分中的正则表达式。你可以从中得到更多的细节:PHPT - Test File Layout

我试过在我的测试中使用它,但它总是失败!所以我决定写一个简单的测试,以检查问题和测试是这样的:

--TEST-- 
Test the %r tag of EXPECTF in phpt 
--FILE-- 
<?php 

echo '1'; 

?> 
--EXPECTF-- 
%r.%r 

当我运行它使用梨的run-tests命令测试失败。该.diff文件包含以下内容:

001- %r.%r 
001+ 1 

看来,如果这个标签没有得到通过测试亚军的认可。所以我试图找到一个在PHP源代码测试中使用这个标签的例子。只有一个测试使用它(内部:php-src-5.3/ext/standard/tests/network/gethostbyaddr_basic1.phpt)。

我不知道我在做什么错在这里...任何想法?

回答

2

它仅适用于PHP源代码发行版(以其根目录)附带的run-tests.php,而不适用于PEAR版本。

PHPRC=. TEST_PHP_EXECUTABLE=./sapi/cli/php php run-tests.php a.phpt
PASS Test the %r tag of EXPECTF in phpt [a.phpt] 

如果你看看PEAR的版本<PHP prefix>/lib/php/PEAR/RunTest.php周围线520,你会发现它不支持%r

+0

'--EXPECTREGEX - '会将它下面的整个部分解析为正则表达式。我试图用正则表达式解析输出的一部分。 – Maher4Ever

+0

@Maher权利。检查我的编辑。 – Artefacto

+0

你说得对,梨不支持它...谢谢! – Maher4Ever