【问题标题】:I can't upgrade PHPUnit 5 with composer using PHP 5.6 on WAMP我无法在 WAMP 上使用 PHP 5.6 升级 PHPUnit 5
【发布时间】:2018-08-22 10:04:44
【问题描述】:

我有 PHPUnit v4.7,我尝试升级到 v5。那么为什么没有安装代码覆盖率,我该如何解决呢?我已经尝试完全删除 phpunit 文件夹。我正在使用https://phpunit.de/getting-started/phpunit-5.html中的安装命令

这是我的输出:

c:\[path to]\composer require --dev phpunit/phpunit ^5
./composer.json has been updated
> php artisan clear-compiled
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for phpunit/phpunit 5 -> satisfiable by phpunit/phpunit[5.0.0].
    - Conclusion: don't install phpunit/php-code-coverage 2.2.4
    - phpunit/phpunit 5.0.0 requires phpunit/php-code-coverage ~3.0 -> satisfiable by phpunit/php-code-coverage[3.0.0, 3.0.1, 3.0.2, 3.1.0, 3.1.1, 3.2.0, 3.2.1, 3.3.0, 3.3.1, 3.3.2, 3.3.3].
    - Can only install one of: phpunit/php-code-coverage[3.0.0, 2.2.4].
   ... <repeated with more versions>
    - Can only install one of: phpunit/php-code-coverage[3.3.3, 2.2.4].
    - Installation request for phpunit/php-code-coverage (locked at 2.2.4) -> satisfiable by phpunit/php-code-coverage[2.2.4].


Installation failed, reverting ./composer.json to its original content.

更新:这是我的 composer.json

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "laravel/framework": "5.0.*",
        "illuminate/html": "^5.0",
        "adamwathan/bootforms": "@dev",
        "patricktalmadge/bootstrapper": "~5",
        "frozennode/administrator": "^5.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "^5",
        "laracasts/integrated": "^0.15.6"        
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

【问题讨论】:

  • 你试图查看你的composer.json
  • @AlexKarshin 是的,我不知道缺少什么,请参阅pastebin.com/un9Hpan8
  • 只需将所需版本的phpunit/php-code-coverage 添加到您的composer.json 中怎么样?

标签: php phpunit composer-php wamp


【解决方案1】:

您的phpunit/php-code-coverage 已锁定在2.2.4(检查composer.lock,它需要phpunit/phpunit~4(请参阅:composer show -a phpunit/php-code-coverage 2.2.4),并且您正在尝试安装phpunit/phpunit5

现在,phpunit/phpunit 5.0.0 需要 phpunit/php-code-coverage ~3.0

$ composer show -a phpunit/phpunit 5.0.0 | grep coverage
phpunit/php-code-coverage ~3.0

您的锁定版本是2.2.4,而您不能同时拥有两者(3.3.32.2.4)。

要查看特定包被锁定的原因,请运行:

composer why -t phpunit/php-code-coverage

注意:您也可以在末尾添加版本/约束。

所以你可以尝试:

  • 通过以下方式更新您现有的包以及所有依赖项:

    composer update --with-dependencies
    
  • 更新失败的特定包:

    composer update phpunit/php-code-coverage --with-dependencies
    
  • 删除 composer.lock 并通过以下方式重新安装所有软件包:

    composer install
    

要查看当前的依赖树,运行:

composer show -t

另见:

【讨论】:

  • 我已经使用了"phpunit/phpunit": "5.0.*","phpunit/php-code-coverage": "~3.0","phpunit/phpunit-mock-objects": "~3.0"
猜你喜欢
  • 1970-01-01
  • 2017-06-18
  • 2016-12-13
  • 2016-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 1970-01-01
相关资源
最近更新 更多