codeception

Incorrect content of vendor/bin/codecept


I installed older Codeception 2.5 (because of module for PHP framework Yii1) like this:

composer require codeception/codeception:2.5.*

And then executed:

php vendor/bin/codecept run unit --coverage-html

And nothing happened. I can only see following code. I discovered that all 3 files (carbon, codecept, phpunit) in folder vendor/bin contain only this instead of PHP code:

#!/usr/bin/env sh

dir=$(cd "${0%[/\\]*}" > /dev/null; cd '../codeception/codeception' && pwd)

if [ -d /proc/cygdrive ]; then
    case $(which php) in
        $(readlink -n /proc/cygdrive)/*)
            # We are in Cygwin using Windows php, so the path must be translated
            dir=$(cygpath -m "$dir");
            ;;
    esac
fi

"${dir}/codecept" "$@"

Why is that? I am using Ubuntu 16 in Vagrant (CognacBox image). If I use XAMPP and Windows 10 it works correctly. I used Composer v1 and v2. Both with the same problem.


Solution

  • Both of these codebases are no longer supported, however, if you're still interested in this approach, you can use the updated Cognacbox 4.0 and the latest Codeception v5. They both seem to fully work as expected when using current releases of these respective systems.