В настоящее время используется tox
для тестирования пакета Python и используется библиотека Python (chromedriver-binary
) для установки chromedriver
.
Эта библиотека создает скрипт (chromedriver-path
), который при вызове выводит PATH, где установлен chromedriver
. Обычный способ использовать это - запустить:
export PATH=$PATH:`chromedriver-path`
Я безуспешно пробовал следующее в tox.ini
setenv=
PATH = {env:PATH}{:}`chromedriver-path`
Эти ошибки, как и ожидалось:
FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'chromedriver': 'chromedriver'
Подразумевается, что команда setenv никогда не вызывается/не запускается.
commands=
export PATH=$PATH:`chromedriver-path
Это не удается с:
ОШИБКА: InvocationError для команды не удалось найти исполняемый экспорт
Как мне заставить это работать?
chromedriver-path
в среде (под любым именем) до запускаtox
вообще? Если вы поместитеexport chromedriver_path="$(chromedriver-path)"
в свой.bash_profile
(или аналогичный, соответствующий платформе и т. д., чтобы он был экспортирован до запускаtox
), вы сможете указать{env:PATH}{:}{env:chromedriver_path}
в своемtox.ini
, предполагая, что синтаксис, который вы указали, был правильным. - person Charles Duffy   schedule 13.04.2019pip
установкиchromedriver-binary
через toxdeps
, поэтому он не существует до запускаtox
. - person match   schedule 13.04.2019commands
? то есть что-то вродеbash -c 'PATH=$PATH:`chromedriver-path` py,test ...'
- person match   schedule 13.04.2019bash -c 'PATH=$PATH:$(chromedrive-path); exec "$@"' _ py test ...
, предполагая, что в противном случае вы бы использовалиpy test ...
. (Предостережение: я знаю bash и Python, но не Tox; тем не менее, пункт выше заключается в том, что вы хотите, чтобы динамические компоненты не участвовали в аргументе, который непосредственно следует за-c
, в максимально возможной степени, чтобы избежать атак с внедрением оболочки и других гадостей). - person Charles Duffy   schedule 13.04.2019$(...)
был стандартизирован с момента публикации POSIX.2 в 1992 году) . - person Charles Duffy   schedule 13.04.2019${}
, и боялся, чтоtox
его схватит!) - person match   schedule 13.04.2019