2016-10-06 103 views
3

正如解释here我可以运行一个测试,如果PHP版本至少5.3.0。PHPUnit - 我可以运行较低版本的PHP的测试吗?

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

我写这篇文章:

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

但我收到此错误

Unescaped '<' not allowed in attributes values 

我怎么能这样做呢?

+0

phpVersion不会告诉PHPUnit“伪造”不同的PHP版本。它只是设置所需的最小PHP版本,所以如果你的版本不符合这个要求,测试将(可能)不会发生。相反, – apokryfos

+0

降低版本。或者,在您的测试 – Gordon

+0

上使用'@ requires',您使用的是哪个版本的phpunit? – Matteo

回答

3

在手风琴与version_compare函数的DOC:

可能的操作符是:<,LT,< =,LE, >,gt,> =,ge,==,=,eq, !=,<>,ne。即在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> 

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

+0

是的!现在'lt'works好了!谢谢! :) –

0

您需要转义<属性内:

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

已经尝试过,但没有结果。 –

相关问题