OXID Developer VM: runtests nicht läuft

Hallo zusammen,

ich habe OXID Developer VM installiert und versucht, Tests ohne Erfolg auszuführen.
Dafür habe ich das Folgendes gemacht:

  1. Installieren OXID Developer VM
  2. Besuchen www.oxideshop.dev, um zu wissen, dass alles ok ist.
  3. Verbinden zum Server durch Putty
  4. Führen den folgenden Befehl aus:
cd /var/www/oxideshop/source
  1. Führen den folgenden Befehl aus:
vendor/bin/runtests /var/www/oxideshop/tests/Unit/Modules/oe/invoicepdf/models/InvoicePdfOxOrderTest.php
  1. Phpunit wird nicht ausgeführt und ich bekomme die folgende Ausgabe:
dir=$(d=${0%[/\\]*}; cd "$d"; cd '../phpunit/phpunit' && pwd)

# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
        # Cygwin paths start with /cygdrive/ which will break windows PHP,
        # so we need to translate the dir path to windows format. However
        # we could be using cygwin PHP which does not require this, so we
        # test if the path to PHP starts with /cygdrive/ rather than /usr/bin
        if [[ $(which php) == /cygdrive/* ]]; then
                dir=$(cygpath -m "$dir");
        fi
fi
dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/phpunit" "$@"

Ich habe ein bisschen geschaut und ich habe gesehen, dass der Befehl:

vendor/bin/runtests /var/www/oxideshop/tests/Unit/Modules/oe/invoicepdf/models/InvoicePdfOxOrderTest.php

führt den folgenden Befehl aus:

TEST_SUITE='/var/www/oxideshop/tests' php /var/www/oxideshop/source/vendor/bin/phpunit --bootstrap /var/www/oxideshop/source/vendor/oxid-esales/testing-library/bootstrap.php -c '/var/www/oxideshop/tests/phpunit.xml' '/var/www/oxideshop/tests/Unit/Modules/oe/invoicepdf/models/InvoicePdfOxOrderTest.php'

Danach habe ich derselbe Befehl ohne “php” ausgeführt:

TEST_SUITE='/var/www/oxideshop/tests' /var/www/oxideshop/source/vendor/bin/phpunit --bootstrap /var/www/oxideshop/source/vendor/oxid-esales/testing-library/bootstrap.php -c '/var/www/oxideshop/tests/phpunit.xml' '/var/www/oxideshop/tests/Unit/Modules/oe/invoicepdf/models/InvoicePdfOxOrderTest.php'

Nach diese Ausführung wird phpunit ausgeführt.

Diese “php” wird in der Zeile 33 von der Datei:

/var/www/oxideshop/source/vendor/oxid-esales/testing-library/bin/runtests
$php = getenv('PHPBIN') ? getenv('PHPBIN') : 'php';

Könntet ihr mir erklären, warum den folgenden Befehl nicht läuft? Mache ich etwas falsch?

vendor/bin/runtests /var/www/oxideshop/tests/Unit/Modules/oe/invoicepdf/models/InvoicePdfOxOrderTest.php

Danke schön im Voraus

PS: Für die Installation von OXID Developer VM habe ich https://github.com/OXID-eSales/oxvm_eshop benutzt.

Hallo @antonio,

hast Du denn das hier auch gefunden?

Gruß

Hallo Marco,

danke schön für deine Antwort.

Ich hatte https://github.com/OXID-eSales/testing_library schon gelesen. Davon habe ich das Beispiel genommen. Deshalb wusste ich, welche Befehl auszuführen.
Da steht:

bin/runtests path/to/test/fileTest.php

Weil ich unter /var/www/oxideshop/source anstatt /var/www/oxideshop/source/vendor bin, führe ich aus:

vendor/bin/runtests /var/www/oxideshop/tests/Unit/Modules/oe/invoicepdf/models/InvoicePdfOxOrderTest.php

Hast du das Problem beheben können? Es hängt wohl mit ein Windows System zusammen.

Damit mein zukünftiges ICH nicht wieder daran scheitern… Ich habe die Testlibary geändert. Anstatt ihn die /bin/ datei ausführen zu lassen, verweise ich direkt auf die entsprechende php datei.

Datei:
testing_library/bin/runtests

Ab Zeile 33:

$php = ‘php5’;
$phpUnit = ‘/srv/repo/testing_library/vendor/phpunit/phpunit/phpunit’;

$phpUnit = "$php $phpUnit --bootstrap " . DIR . “/…/bootstrap.php”;

Tipp:
Die php.ini kann ggf. eine andere sein beim ein Komandobefehl. Hier müsst ihr also die php.ini noch mit den Zend Encoder ausstatten, damit der Shop auch über die Komandozeile läuft.