PHPUnit - 我可以 运行 测试较低版本的 PHP 吗?

PHPUnit - Can I run tests for a lower version of PHP?

如前所述 here 我可以 运行 测试 PHP 版本是否至少为 5.3.0。

但是如果我想 运行 测试低于 5.3.0 的 PHP 版本?

我这样写:

<file phpVersion="5.3.0" phpVersionOperator="<=">./tests/unit/test-file.php</file>

但是我收到这个错误

Unescaped '<' not allowed in attributes values

我该怎么做?

您需要在属性内转义 <:

<file phpVersion="5.3.0" phpVersionOperator="&lt;=">./tests/unit/test-file.php</file>

根据 version_compare 函数的文档:

The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectively.

在phpunit核心here中使用,您可以简单地指定lt作为值。例如:

<file phpVersion="5.3.0" phpVersionOperator="lt">./tests/unit/test-file.php</file>

希望对您有所帮助

注意:

如果文件也包含在测试套件的另一个指令中,它将被执行,例如在这种情况下:

<testsuite name="Project Test Suite">
    <directory>tests</directory>  <!-- This line execute the test -->
    <file phpVersion="5.3.0" phpVersionOperator="<=">./tests/unit/test-file.php</file>
</testsuite>

所以在测试套件定义中要有选择性。