2016-10-06 7 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

вместо этого. В качестве альтернативы, используйте '@ require' в своем тесте – Gordon

+0

, какую версию phpunit вы используете? – Matteo

ответ

3

В аккордеона с доком функции version_compare:

Возможными операторы: <, лп, < =, ль, >, 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

Уже пробовал, но никаких результатов. –