2017-12-17 3 views
0

Ich möchte einige zusätzliche Einstellungen in meiner Tox-Konfiguration angeben, aber nur wenn ich auf einer bestimmten Plattform laufe.Plattformspezifische Einstellungen in tox

Zum Beispiel möchte ich bei der Ausführung unter Windows eine zusätzliche Umgebungsvariable definieren. Ich würde wie so etwas wie diese

[tox] 
envlist = env1, env2, env_win32, env_arch 

[testenv] 
commands= 
    do stuff... 

[testenv] 
platform = arch 
setenv = 
    NAME = VALUE 

[testenv:env_win32] 
plaform = win32 
more = stuff 

[testenv:env_arch] 
platform = arch 
more = different_stuff 

zu tun, aber dies wegen des doppelten testenv Abschnitts nicht funktioniert. Ich möchte, dass die angegebene Umgebungsvariable auf alle Umgebungen angewendet wird (z. B. env1, env2, env_arch), aber nicht auf env_win32.

Hinweis: Der spezifische Fall, dass ich mit zu tun habe, ist, dass auf * nix-Plattformen müssen wir eine zusätzliche Umgebungsvariable für install_command nur angeben, so enthält der Befehl /usr/bin/env NAME=VALUE am Anfang. Leider existiert dies nicht in Windows, was dazu führt, dass es fehlschlägt. Ich möchte die install_command je nach Plattform bedingt anders definieren, um dies zu umgehen.

Antwort

0
[tox] 
envlist = env1, env2, env_win32, env_linux 

[testenv] 
install_command = pip install {opts} {packages} 

[testenv-linux] 
platform = linux 
install_command = /usr/bin/env NAME=VALUE pip install {opts} {packages} 

[testenv:env_win32] 
plaform = win32 
install_command = {[testenv]install_command} 

[testenv:env_linux] 
platform = linux 
install_command = {[testenv-linux]install_command} 
+0

Ich bin mir nicht sicher, dass dies mein Problem löst. In meinem Beispiel sind die Befehle im Abschnitt "[Testtenv]" definiert. Wenn ich 'tox -e env1' auf einem Linux-Rechner ausführen würde, würde es die Befehle in' [testenv] 'ausführen, ohne dass die zusätzliche Umgebungsvariable konfiguriert ist. –

+0

Dann müssen Sie Ihre Umgebungen in linux- und w32-related aufteilen und die richtige 'install_command'-Substitution in jeder Umgebung einschließen. Zumindest sehe ich das nicht anders. – phd

Verwandte Themen