| P | UMA
| --------------------| ---------------
| Versão do PHPUnit | ~4.7.0 \|\| ~5.0.0 \|\| ~5.1.0 \|\| ~5.2.0
| Versão do PHP | não relacionado
| Método de instalação | compositor
PHP Timer v2 foi lançado. É incompatível com o PHPUnit mencionado, pois o PHPUnit com determinada versão requer... >= 1
vez de ^1
. Para isso, qualquer nova instalação desse PHPUnit (no projeto legado) irá travar durante a execução com:
https://travis-ci.org/PHPUnitGoodPractices/Traits/jobs/341148960#L978
Erro fatal do PHP: Erro não capturado: Classe 'PHP_Timer' não encontrada em /home/travis/build/PHPUnitGoodPractices/Traits/vendor/phpunit/phpunit/src/Framework/TestResult. php:577
Ele atingirá especialmente projetos PHP herdados que não podem atualizar o PHPUnit diretamente.
Sim, eu sei que isso será considerado um problema de versão não mantida e, para isso, pode ser fechado imediatamente, mas é na edição final que o php-timer major acaba de ser lançado.
Solução para usuários tristes de versões legadas do PHPUnit afetadas:
adicione ao seu composer.json
:
"conflict": {
"phpunit/php-timer": ">=2",
}
isso basicamente fará com que o PHPUnit reuirement do php-timer seja ^1, como em outras versões do PHPUnit
O PHPUnit 4.7 infelizmente tem "phpunit/php-timer": ">=1.0.6"
em seu composer.json
. No entanto, o PHPUnit 4.7 foi substituído pelo PHPUnit 4.8 há muito tempo. Não há razão para não atualizar do PHPUnit 4.7 para o PHPUnit 4.8. PHPUnit 4.8 tem "phpunit/php-timer": "^1.0.6"
em seu composer.json
.
Você também menciona PHPUnit 5.0, PHPUnit 5.1 e PHPUnit 5.2. Todas essas versões têm "phpunit/php-timer": "^1.0.6"
em seu composer.json
.
O que você espera que eu faça aqui? Lançar uma nova versão do PHPUnit 4.7 que tenha um composer.json
atualizado? Desculpe, mas isso não vai acontecer. A solução que você forneceu em https://github.com/sebastianbergmann/phpunit/issues/3008#issuecomment -365430405 deve ser boa o suficiente. Claro, a solução certa seria atualizar para pelo menos o PHPUnit 4.8 ou usar um PHAR do PHPUnit 4.7.
Você também menciona PHPUnit 5.0, PHPUnit 5.1 e PHPUnit 5.2. Todas essas versões têm "phpunit/php-timer": "^1.0.6" em seu composer.json.
não, 5.2.x-dev
tem phpunit/php-timer: ^1.0.6
,
mas última versão estável de 5.2,
5.2.12
tem phpunit/php-timer: >=1.0.6
para isso 5.0.x, 5.1.xe 5.2.x também são afetados.
O PHP Timer acabou de ser lançado, o fato de lançamento trouxe um problema para o PHPUnit legado que eu atingi com força na minha empresa e projetos paralelos, então o objetivo deste tópico era levantar o problema (para que pudesse ser encontrado pelos usuários que também o atingiram) e fornecer possível solução alternativa.
Como eu disse no post inicial, não espero um novo lançamento do phpunit 4/5. Obrigado!
Comentários muito úteis
Solução para usuários tristes de versões legadas do PHPUnit afetadas:
adicione ao seu
composer.json
:isso basicamente fará com que o PHPUnit reuirement do php-timer seja ^1, como em outras versões do PHPUnit