我有以下内容gitab-ci.yml file:
stages:
- tests
.test: &test_job
image:
name: test.com/test:latest
entrypoint: [""]
script:
- py.test /test -v $EXTRA_OPTIONS
testing:
variables:
EXTRA_OPTIONS: -m "not slow"
<<: *test_job
stage: tests
Run Code Online (Sandbox Code Playgroud)
我想传递运行 pytest 的选项,例如:
py.test /tests -v -m "not slow"
以避免运行缓慢的测试,但 gitlab 正在尝试转义引号。
我有类似的东西:
py.test /tests -v -m '"not\' 'slow"'
是否可以创建一个无需转义即可内联的变量?
我发现的只是这个链接,但没有帮助。
首先,为了避免变量中的空格转义,请使用单引号:
variables:
EXTRA_OPTIONS: -m 'not slow'
Run Code Online (Sandbox Code Playgroud)
要应用附加命令行参数,您有以下三个选项:
PYTEST_ADDOPTS。在我看来,这是最简单的选择;只需在变量部分替换EXTRA_OPTIONS为:PYTEST_ADDOPTSvariables:
PYTEST_ADDOPTS: -m 'not slow'
Run Code Online (Sandbox Code Playgroud)
addopts与 结合使用-o。addopts是一个 inifile 键,使您能够将命令行参数保留在pytest.ini. arg-o/--override-ini允许覆盖 inifile 值,包括addopts. 两者的组合是通过环境变量传递命令行参数的绝妙技巧:
script:
- pytest -v -o "addopts=$EXTRA_OPTIONS" /test
Run Code Online (Sandbox Code Playgroud)
使用eval:
script:
- eval pytest -v "$EXTRA_OPTIONS" /test
Run Code Online (Sandbox Code Playgroud)
但是,使用时需要非常小心eval;请参阅为什么在 Bash 中应避免 eval,以及我应该使用什么来代替?
。因此我更喜欢第一个选择。
| 归档时间: |
|
| 查看次数: |
6883 次 |
| 最近记录: |