Fehler phpunit ausführbare Datei nicht gefunden

466
Adam T

In einem API-Projekt haben wir composer.json auf Folgendes festgelegt:

{ "require-dev": { "phpunit/phpunit": "4.7.*" }, "require": { "monolog/monolog": "1.5.*" } } 

Und am ersten war composer installalles gut. Phpunit arbeitete beim Aufruf mit vendor/bin/phpunit. Mein Arbeitscomputer ist ein Windows 7-Betriebssystem, wir verwenden jedoch git mit diesem Projekt, und wenn ich von einem anderen Computer (Kubuntu 14.04) aus daran arbeite git pull, kann ich danach keine Unit-Tests mehr ausführen vendor/bin/phpunit- es schlägt fehl, es kann kein Fehler auftreten vendor / bin / phpunit finden.

Auf dem Linux-Rechner löschte ich den nicht funktionierenden ausführbaren Hersteller / bin / phpunit und entfernte den Hersteller- / phpunit-Ordner und ließ ihn vom Composer über ersetzen composer update. Zu diesem Zeitpunkt kann ich wieder Unit-Tests wie zuvor durchführen. Dies funktioniert jedoch nicht so nahtlos unter Windows 7. Das ist komplizierter.

Meine Frage ist: Mache ich etwas falsch, indem ich die Dateien durch Github aufspreche und dann auf verschiedenen Betriebssystemen arbeite? Würde ich diesen Fehler vermeiden, wenn ich nur composer.jsonden Inhalt des vendor/phpunit/phpunitVerzeichnisses nachverfolgte (und die Dateien bei ihrem spezifischen Betriebssystem verbleiben lassen würde)? Danke, Adam.

1

1 Antwort auf die Frage

0
mbirth

Der Zweck von Composer ist, dass Sie vendorin Ihrem Repo nur ein leeres (!) Verzeichnis haben müssen, aber Track composer.json(Anforderungen) und composer.lock(zuletzt getestete spezifische Versionen) und composer installnach dem Auschecken auf einem neuen Entwicklungscomputer ausgeführt werden müssen.

(Hinweis: composer installDie spezifischen Versionen werden entsprechend der composer.lockDatei composer updateinstalliert. Die jeweils neueste Version entspricht den in der composer.json. Definierten Anforderungen .)

Composer sollte dann die entsprechende Binärdatei für Ihr System herunterladen und in das vendor/bin/Verzeichnis ablegen.

Ich bin nur verwirrt, da alles gut funktioniert. Dann schiebe ich Tests in das Remote-Repository. Aus irgendeinem Grund erhält der Herstellerordner LOTS von Modifikationen, die (ich schätze) auf einem Git-Pull von einem anderen Rechner die Kompatibilität und die Pfadfindung des ausführbaren Anbieters / bin / php aus dem Gleichgewicht bringen. Adam T vor 9 Jahren 0
Ich habe die Composer-Installation nach dem Checkout auf dem neuen Entwicklungscomputer ausgeführt. Was ich nicht verstehe, ist "wie" git "denkt", dass all diese Dateien geändert wurden (vom Herstellerordner), als ich sie nicht berührt habe. Natürlich kann es bei einem Pulldown von Dateien, die für eine Wickelmaschine spezifisch sind, eine andere Maschine völlig verwirren, weshalb mir der Gedanke kam, diese Dateien einfach "nicht zu verfolgen". Verfolgen Sie composer.json, aber kümmern Sie sich nicht um die Verfolgung der Dateien, die der Composer möglicherweise herunterzieht. Adam T vor 9 Jahren 0