Gitlab CI don';t测试代码是否没有更改(pytest testmon)
我想使用pytest testmon使用gitlab CI执行测试。不幸的是,生成的文件Gitlab CI don';t测试代码是否没有更改(pytest testmon),gitlab,pytest,gitlab-ci,Gitlab,Pytest,Gitlab Ci,我想使用pytest testmon使用gitlab CI执行测试。不幸的是,生成的文件.testmondata似乎没有保存在gitlab runner实例中,因此没有保存对测试内容的回忆 有没有办法保存这个.testmondata并使用它(对于测试时的每个不同分支)以避免在代码被推送到这些分支时重复测试未更改的代码?您可以将作业期间生成的文件上载到Gitlab,以便稍后通过下载、在合并请求时查看这些文件,或者通过使用工件关键字在其他作业中使用它们。下面是一个简单的例子: tests: st
.testmondata
似乎没有保存在gitlab runner实例中,因此没有保存对测试内容的回忆
有没有办法保存这个.testmondata并使用它(对于测试时的每个不同分支)以避免在代码被推送到这些分支时重复测试未更改的代码?您可以将作业期间生成的文件上载到Gitlab,以便稍后通过下载、在合并请求时查看这些文件,或者通过使用
工件
关键字在其他作业中使用它们。下面是一个简单的例子:
tests:
stage: tests
script:
- ./run_tests.sh
artifacts:
paths:
- .testmondata
name: "$CI_COMMIT_REF_NAME_tests_testmondata"
expose_as: 'Tests Results'
expire_in: 3 months
在本例中,在运行脚本
部分(以及在脚本
之前或在脚本
之后,如果存在)之后,gitlab runner将查找与路径
数组中的条目匹配的文件/目录。如果没有找到,它将抛出一个错误
然后,运行程序将使用name
字段中的名称将工件上传到Gitlab。最好使用Gitlab CI提供的一些预定义变量,以便在必要时可以轻松识别工件来自哪个管道和作业。在本例中,名称具有分支或标记名称,然后\u tests\u testmondata
下一个属性,expose_as
允许您在该分支的合并请求上放置一个链接以显示工件。如果没有expose_as
,则必须打开管道和作业才能查看工件
接下来,中的expire\u允许您定义此作业中的工件何时过期。如果不设置此属性,则工件将根据Gitlab服务器的设置(默认为30天)过期。您可以以整数形式提供秒数(3600
,或一小时)、永不
(永不过期),或许多其他人类可读格式,如3年8个月28天
或46个月
您可以在此处查看所有可用的预定义变量:,也可以在此处查看工件
关键字的所有选项:关于“通过同一管道中的作业保存工件”的问题:它在此处描述。如果你对此有困难,我可以解释为答案。pytest testmon是一个非常有趣的工具,感谢您提出的问题,我将加入其中并尝试解决它。顺便问一句,一个多月前,有人问过这样一个问题:@vladimir vargas你已经找到解决方案了吗?@gore我还没有找到解决方案。工件看起来很有趣,但它们会过期。我不明白(因为我的无知)如何将它们用于我想要的任务。