Phpunit: incompatibilidade com PHP_Timer

Criado em 13 fev. 2018  ·  3Comentários  ·  Fonte: sebastianbergmann/phpunit

| 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.

Comentários muito úteis

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

Todos 3 comentários

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!

Esta página foi útil?
0 / 5 - 0 avaliações