Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gitlab CI don';t测试代码是否没有更改(pytest testmon)_Gitlab_Pytest_Gitlab Ci - Fatal编程技术网

Gitlab CI don';t测试代码是否没有更改(pytest testmon)

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

我想使用pytest testmon使用gitlab CI执行测试。不幸的是,生成的文件
.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我还没有找到解决方案。工件看起来很有趣,但它们会过期。我不明白(因为我的无知)如何将它们用于我想要的任务。