我有以下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
我想通过选项来运行pytest,例如:
py.test /tests -v -m "not slow"
为了避免运行缓慢的测试,但是gitlab试图转义引号。
我有类似的东西:
py.test /tests -v -m '"not\' 'slow"'
是否有可能创建一个无需转义就可以内联的变量?
我所发现的只是this link,但无济于事。
答案 0 :(得分:0)
首先,为避免在变量中转义空格,请使用单引号:
variables:
EXTRA_OPTIONS: -m 'not slow'
要应用变量,您有两个选择:
结合使用addopts
和-o
。 addopts
是enables you to persist command line args in pytest.ini
的inifile密钥。 -o/--override-ini
arg允许覆盖一个inifile值,包括addopts
。两者的结合是一个通过环境变量传递命令行参数的漂亮技巧:
script:
- pytest -v -o "addopts=$EXTRA_OPTIONS" /test
使用eval
:
script:
- eval pytest -v "$EXTRA_OPTIONS" /test
但是,使用eval
时需要非常小心;参见Why should eval be avoided in Bash, and what should I use instead?
。因此,我希望第一种选择。