2016-06-28 15 views
-1

Ich möchte innerhalb der Wurzel meines Repository laufen py.test (es gut läuft, wenn sie lokal)Gitlab CI nicht erkennt Python auf Windows

Ich habe bereits meine Umgebungsvariablen für Python und Git gesetzt (sie funktionieren), und mein CI-Läufer verbindet sich mit meinem Gitlab Repo. Wenn jedoch ein Build ausgelöst wird, bekomme ich diese Meldung:

gitlab-ci-multi-runner 1.3.1 (4911137)
Using Shell executor...
Running on XXXXXX...

Fetching changes...

HEAD is now at 1aa2135 Update .gitlab-ci.yml
Checking out 1aa21352 as cirunner...

$ py.test

'py.test' is not recognized as an internal or external command,

operable program or batch file.

ERROR: Build failed: exit status 9009

Warum sollte der Shell Executor nicht Python/py.test erkennen?
Dies ist auf Windows Server 2012.

EDIT: Ich möchte Unit-Tests mit py.test jedes Mal wenn ich an entfernte

+0

Ich bin verwirrt verwenden , was versuchst du zu erreichen, ist das ein Python-Skript, das du ausführen willst? – 13aal

+0

Ich möchte nur Unit-Tests (mit py.test) auf meinem Projekt jedes Mal, wenn ich auf Remote-Push ausführen – mugizico

+1

ist die Sache, die versucht, das Python-Skript mit dem richtigen Verzeichnis ausführen? Vielleicht müssen Sie einen vollständigen Pfad für 'py.test' angeben. – Wolf

Antwort

0

Ich hatte fast ähnlich zu diesem answer schieben laufen nur die script in .gitlab- geben ci.yml einen vollständigen Pfad wie so py.test:

Script: - C:\Users\Admin\Python3\scripts\py.test

statt

Script: - py.test

und es funktionierte

2

Ich weiß, es ist ein Jahr zu spät, aber könnte für andere Menschen nützlich sein. Sie können Variablen in Ihrem gitlab-ci.yml festlegen. Dann müssen Sie nur noch mit dem Pfad zu Ihrer Python-Binärdateien wie diese Ihre PATH-Variable:

variables: 
    PATH: "C:\\Python27" 

und dann können Sie den Befehl python in Ihren Jobs

test: 
    script: 
    - python unittest.py 
    - python regressiontest.py 
    ...