【问题标题】:Why doesn't pear recognize regex in phpt tests?为什么 pear 在 phpt 测试中不能识别正则表达式?
【发布时间】:2011-11-19 15:19:27
【问题描述】:

我正在尝试为我正在处理的 PHPUnit extiontion 编写一个测试,该测试需要在测试的预期部分使用正则表达式匹配器。

PHPT 文件的文档指出有一个%r 标志可用于匹配测试的--EXPECTF-- 部分中的正则表达式。您可以通过以下方式获取更多详细信息:PHPT - Test File Layout

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

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

echo '1';

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

当我使用 pear 的 run-tests 命令运行它时,这个测试失败了。 .diff 文件包含以下内容:

001- %r.%r
001+ 1

似乎这个标签没有被测试运行者识别。所以我试图找到一个在 PHP 源代码测试中使用这个标签的例子。使用它只能找到一个测试(内部:php-src-5.3/ext/standard/tests/network/gethostbyaddr_basic1.phpt)。

我不确定我在这里做错了什么......有什么想法吗?

【问题讨论】:

    标签: php unit-testing phpunit phpt


    【解决方案1】:

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

    PHPRC=. TEST_PHP_EXECUTABLE=./sapi/cli/php php run-tests.php a.phpt
    PASS 测试 phpt [a.phpt] 中 EXPECTF 的 %r 标签
    

    如果您在第 520 行附近查看 &lt;PHP prefix&gt;/lib/php/PEAR/RunTest.php 中的 PEAR 版本,您会发现它不支持 %r

    【讨论】:

    • --EXPECTREGEX-- 会将其下方的整个部分解析为正则表达式。我正在尝试使用正则表达式解析输出的一部分。
    猜你喜欢
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2015-01-23
    • 1970-01-01
    • 2011-06-17
    相关资源
    最近更新 更多