gpt4 book ai didi

python - 如何在 Jenkins 环境中运行不同的 tox 命令?

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:22 25 4
gpt4 key购买 nike

我想为 py.test 使用不同的命令行参数,具体取决于环境:在本地运行应该只有默认参数,但在 Jenkins 上我想添加 --junitxml=junit-{envname} .xml,所以测试结果可以以漂亮的格式发布。我从documentation知道, 有特殊的 [tox:jenkins] 部分,should be used如果定义了 'JENKINS_URL''HUDSON_URL'。所以现在我创建了简单的 tox.ini 文件:

[tox]
envlist = py27, py35

[tox:jenkins]
commands = echo "We are in JENKINS!"

[testenv]
setenv =
PYTHONPATH = {toxinidir}:{toxinidir}/my_module
commands = python setup.py test

deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/requirements_test.txt

并且定义了JENKINS_URL环境变量:

export JENKINS_URL=true

我预计,如果我运行 tox,那么我的原始命令将被替换为 echo,但它不起作用,而是以执行原始命令结束。有人可以帮我解决这个问题吗?

最佳答案

好的,我自己找到了解决方案:

[tox]
envlist = py27, py35

[testenv]
setenv =
PYTHONPATH = {toxinidir}:{toxinidir}/my_module
commands = py.test {env:CUSTOM_ARGS} ; <== use environment variable here

deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/requirements_test.txt

在 Jenkins 中,只需像这样定义 CUSTOM_ARGS 环境变量:

export CUSTOM_ARGS="--junitxml=junit.xml"

关于python - 如何在 Jenkins 环境中运行不同的 tox 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37325888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com